在C语言中用尾插法建立带头结点的单链表函数
时间: 2024-05-14 15:14:07 浏览: 115
以下是用尾插法建立带头结点的单链表的函数示例:
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct Node {
int data;
struct Node *next;
} Node, *LinkedList;
LinkedList createLinkedList() {
LinkedList head = (LinkedList) malloc(sizeof(Node));
head->next = NULL;
return head;
}
void insert(LinkedList head, int data) {
Node *newNode = (Node*) malloc(sizeof(Node));
newNode->data = data;
newNode->next = NULL;
Node *p = head;
while (p->next != NULL) {
p = p->next;
}
p->next = newNode;
}
void printLinkedList(LinkedList head) {
Node *p = head->next;
while (p != NULL) {
printf("%d ", p->data);
p = p->next;
}
printf("\n");
}
int main() {
LinkedList list = createLinkedList();
insert(list, 1);
insert(list, 2);
insert(list, 3);
printLinkedList(list);
return 0;
}
```
在上面的示例代码中,我们定义了一个 `Node` 结构体表示链表中的节点,还定义了一个 `LinkedList` 类型表示链表。`createLinkedList()` 函数用于创建一个带头结点的链表,`insert()` 函数用于插入一个新的元素到链表的末尾,`printLinkedList()` 函数用于打印链表中的所有元素。
在 `main()` 函数中,我们首先创建了一个空的链表 `list`,然后依次插入了三个元素 1、2 和 3 到链表中,最后打印了链表中的所有元素。运行程序后,输出应该为:
```
1 2 3
```
阅读全文