c语言单向链表的创建与输出
时间: 2024-10-19 11:06:16 浏览: 40
在C语言中,单向链表是一种线性数据结构,每个节点包含两个部分:数据域用于存储数据,指针域用于指向下一个节点。下面是创建一个简单的单向链表并输出其内容的基本步骤:
1. **创建链表节点**:
- 定义一个`struct Node`,包含数据`data`和指向下一个节点的指针`next`。
```c
struct Node {
int data;
struct Node* next;
};
```
2. **创建链表头节点**:
- 初始化一个空链表,通常创建一个头节点,它本身没有数据,只有`next`为NULL。
```c
struct Node* head = NULL;
```
3. **插入节点**:
- 要添加新节点,需要一个函数如`insertNode()`,接受数据值和头节点作为参数。
```c
void insertNode(int value) {
struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));
newNode->data = value;
newNode->next = head;
head = newNode;
}
```
4. **遍历链表**:
- 创建一个辅助函数,如`displayList()`,通过递归或循环遍历整个链表并打印节点值。
```c
void displayList(struct Node* node) {
if (node != NULL) {
printf("%d -> ", node->data);
displayList(node->next);
}
}
// 调用展示整个链表
displayList(head);
```
5. **示例完整代码**:
```c
#include <stdio.h>
#include <stdlib.h>
// 链表节点结构体
struct Node {
int data;
struct Node* next;
};
// 插入节点到链表
void insertNode(int value) {
struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));
newNode->data = value;
newNode->next = head;
head = newNode;
}
// 显示链表
void displayList(struct Node* node) {
if (node != NULL) {
printf("%d -> ", node->data);
displayList(node->next);
} else {
printf("null");
}
}
int main() {
struct Node* head = NULL; // 空链表
// 添加节点
insertNode(1);
insertNode(2);
insertNode(3);
// 输出链表
printf("链表内容: ");
displayList(head);
return 0;
}
```
阅读全文