创建一个链表 c语言
时间: 2023-12-21 14:31:18 浏览: 86
在C语言中,创建链表需要先定义一个结构体作为节点,并使用指针来连接节点。下面是一个简单的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义链表节点结构体
typedef struct Node {
int data;
struct Node* next;
} Node;
// 创建链表
Node* createLinkedList(int n) {
Node* head = NULL;
Node* temp = NULL;
Node* p = NULL;
int i;
// 创建头节点
head = (Node*)malloc(sizeof(Node));
if (head == NULL) {
printf("内存分配失败\n");
exit(1);
}
// 输入第一个节点的数据
printf("输入节点1的数据:");
scanf("%d", &(head->data));
head->next = NULL;
temp = head;
// 输入剩余节点的数据
for (i = 2; i <= n; i++) {
p = (Node*)malloc(sizeof(Node));
if (p == NULL) {
printf("内存分配失败\n");
exit(1);
}
printf("输入节点%d的数据:", i);
scanf("%d", &(p->data));
p->next = NULL;
temp->next = p;
temp = temp->next;
}
return head;
}
// 打印链表
void printLinkedList(Node* head) {
Node* p = head;
printf("链表的数据:");
while (p != NULL) {
printf("%d ", p->data);
p = p->next;
}
printf("\n");
}
int main() {
int n;
Node* head = NULL;
printf("输入链表的节点数:");
scanf("%d", &n);
head = createLinkedList(n);
printLinkedList(head);
return 0;
}
```
这段代码首先定义了一个`Node`结构体,包含一个整型数据`data`和一个指向下一个节点的指针`next`。然后通过`createLinkedList`函数创建链表,该函数会根据用户输入的节点数和数据创建链表,并返回链表的头节点。最后,通过`printLinkedList`函数打印链表的数据。
阅读全文