有头结点的头插建立链表的C语言代码
时间: 2024-04-09 14:29:07 浏览: 93
C语言写的带有头结点的链表
下面是一个有头结点的头插法建立链表的C语言代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
// 链表节点结构体
typedef struct Node {
int data;
struct Node* next;
} Node;
// 初始化带头结点的链表
Node* initList() {
Node* head = (Node*)malloc(sizeof(Node));
head->next = NULL;
return head;
}
// 头插法建立链表
void createList(Node* head) {
int num;
printf("请输入节点的值(输入-1结束):\n");
scanf("%d", &num);
while (num != -1) {
Node* newNode = (Node*)malloc(sizeof(Node));
newNode->data = num;
newNode->next = head->next; // 将新节点的next指向原链表的第一个节点
head->next = newNode; // 更新头结点的next指向新插入的节点
scanf("%d", &num);
}
}
// 打印链表
void printList(Node* head) {
printf("链表的元素为:\n");
Node* curr = head->next; // 从头结点的下一个节点开始遍历
while (curr != NULL) {
printf("%d ", curr->data);
curr = curr->next;
}
printf("\n");
}
// 主函数
int main() {
Node* head = initList();
createList(head);
printList(head);
return 0;
}
```
这段代码演示了如何使用有头结点的头插法建立链表。首先,程序初始化一个带有头结点的链表,并将头结点的next指针初始化为NULL。然后,程序要求用户输入一系列整数作为节点的值,输入-1表示结束。接下来,程序会按照用户输入的顺序创建链表,并通过头插法将新节点插入链表的头部。最后,程序会打印出链表的所有元素。
希望对你有所帮助!如有任何疑问,请随时提问。
阅读全文