在C语言中创建双向链表并从右到左输出
时间: 2024-10-13 16:18:27 浏览: 27
在C语言中,创建一个双向链表并从右到左输出需要几个关键步骤:
1. 定义节点结构体:首先定义一个包含数据域`data`、指向前一个节点的指针`prev`以及指向下一个节点的指针`next`的结构体。
```c
typedef struct Node {
int data;
struct Node* prev;
struct Node* next;
} Node;
```
2. 创建链表:提供插入和删除节点的函数,用于构建链表。
```c
// 插入节点在链表右侧
void insertNode(Node** head, int data) {
Node* newNode = (Node*)malloc(sizeof(Node));
newNode->data = data;
newNode->prev = NULL;
if (*head == NULL) {
newNode->next = NULL;
*head = newNode;
} else {
newNode->next = *head;
(*head)->prev = newNode;
*head = newNode;
}
}
// 从右向左遍历链表并打印节点
void printListFromRight(Node* head) {
while (head != NULL) {
printf("%d ", head->data);
head = head->prev;
}
}
```
3. 使用链表:创建链表后,你可以通过`insertNode`函数添加元素,并最后调用`printListFromRight`函数来按照从右到左的顺序打印链表。
```c
int main() {
Node* head = NULL;
// 插入节点示例
insertNode(&head, 5);
insertNode(&head, 4);
insertNode(&head, 3);
printf("链表从右到左输出:");
printListFromRight(head);
return 0;
}
```
阅读全文