建立两个带头结点单链表
时间: 2024-03-05 18:47:25 浏览: 53
好的,以下是建立两个带头结点单链表的示例代码(使用C语言实现):
```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->next = NULL; // 头结点的next指针指向NULL
return head;
}
// 向链表尾部插入元素
void insert(Node *head, int data) {
Node *p = head;
while (p->next != NULL) {
p = p->next;
}
Node *newNode = (Node *) malloc(sizeof(Node));
newNode->data = data;
newNode->next = NULL;
p->next = newNode;
}
// 打印链表
void printList(Node *head) {
Node *p = head->next;
while (p != NULL) {
printf("%d ", p->data);
p = p->next;
}
printf("\n");
}
int main() {
// 创建两个链表
Node *list1 = createList();
Node *list2 = createList();
// 向链表1插入元素
insert(list1, 1);
insert(list1, 3);
insert(list1, 5);
// 向链表2插入元素
insert(list2, 2);
insert(list2, 4);
insert(list2, 6);
// 打印链表
printf("List1: ");
printList(list1);
printf("List2: ");
printList(list2);
return 0;
}
```
以上代码中,我们定义了链表结点结构体,其中包含data和next两个成员变量,分别表示结点的值和下一个结点的地址。createList函数用于创建并初始化链表,insert函数用于向链表尾部插入元素,printList函数用于打印链表。在main函数中,我们创建了两个链表list1和list2,并向它们中插入了一些元素。最后打印两个链表的内容。
阅读全文