用c语言编写程序,定义一个单向链表结构体,向链表中插入数据,逆序输出链表内容
时间: 2024-10-21 11:18:30 浏览: 35
在 C 语言中,我们可以使用结构体(struct)来定义一个单向链表的数据结构。首先,我们定义一个节点(Node),包含两个部分:数据域(data)和指向下一个节点的指针(next)。然后,我们可以创建链表头节点,定义插入函数和逆序遍历并输出链表的函数。
```c
#include <stdio.h>
#include <stdlib.h>
// 定义链表节点结构体
typedef struct Node {
int data;
struct Node* next;
} Node;
// 创建链表头结点
Node* createList() {
Node* head = (Node*)malloc(sizeof(Node));
head->data = 0; // 初始化头节点的数据为空
head->next = NULL; // 链表默认为空
return head;
}
// 向链表插入数据
void insert(Node** head, int value) {
Node* newNode = (Node*)malloc(sizeof(Node)); // 新建一个节点
newNode->data = value;
newNode->next = *head; // 将新节点的next指向前一个头节点
*head = newNode; // 更新头节点指向下新节点
}
// 逆序遍历并输出链表
void printReverse(Node* head) {
if (head == NULL) {
printf("链表为空\n");
return;
}
Node* temp = head;
while (temp != NULL) {
printf("%d ", temp->data);
temp = temp->next;
}
printf("\n");
}
int main() {
Node* head = createList();
// 插入数据示例
insert(&head, 5);
insert(&head, 3);
insert(&head, 7);
// 输出逆序链表
printReverse(head); // 结果应该是:7 3 5
return 0;
}
```
阅读全文