用c语言写一个创建链表和遍历链表的函数
时间: 2024-10-22 20:11:29 浏览: 16
C语言 动态链表的创建和遍历
在C语言中,链表是一种动态数据结构,可以创建节点并链接它们。下面是一个简单的例子,展示了如何创建链表结构、添加元素以及遍历链表:
首先,我们定义一个链表节点结构体`Node`:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义链表节点结构
typedef struct Node {
int data; // 节点存储的数据
struct Node* next; // 指向下一个节点的指针
} Node;
```
接下来,我们编写创建链表的函数`createList()`:
```c
// 创建新节点并将其添加到链表末尾
Node* createList(int value) {
Node* newNode = (Node*)malloc(sizeof(Node)); // 分配内存
if (newNode == NULL) {
printf("Memory allocation failed.\n");
return NULL;
}
newNode->data = value;
newNode->next = NULL;
// 如果链表为空,返回新的头结点
if (head == NULL) {
head = newNode;
} else { // 否则将新节点添加到链表尾部
current = head;
while (current->next != NULL) {
current = current->next;
}
current->next = newNode;
}
return head;
}
// 初始化链表头结点(如果为空)
void initList() {
head = NULL;
current = NULL;
}
```
然后,我们可以编写一个遍历链表的函数`displayList()`:
```c
// 遍历链表并打印每个节点的数据
void displayList(Node* node) {
if (node == NULL) {
printf("List is empty.\n");
return;
}
current = node;
while (current != NULL) {
printf("Data: %d -> ", current->data);
current = current->next;
}
printf("\n");
}
```
最后,你可以通过调用这些函数来创建链表并显示它的内容:
```c
int main() {
initList();
// 添加元素到链表
head = createList(10);
head = createList(20);
head = createList(30);
// 遍历链表
displayList(head);
return 0;
}
```
阅读全文