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