用c语言编写链表的尾插法
时间: 2024-10-21 13:10:45 浏览: 37
在C语言中,链表是一种动态数据结构,尾插法是指在链表的末尾插入一个新的节点。以下是使用结构体和指针实现单向链表尾插法的基本步骤:
1. 首先,定义一个链表节点结构体,包含两个部分:数据域和指向下一个节点的指针。
```c
typedef struct Node {
int data; // 节点的数据
struct Node* next; // 指向下一个节点的指针
} Node;
```
2. 创建一个函数 `addNodeToTail` 来完成尾插操作。如果链表为空,创建新节点并将其设为头结点;若链表非空,遍历到最后一个节点,然后将新节点的next指向它。
```c
void addNodeToTail(Node** head, int newData) {
Node* newNode = (Node*)malloc(sizeof(Node)); // 分配内存给新节点
if (*head == NULL) { // 如果链表为空
newNode->data = newData;
newNode->next = NULL;
*head = newNode; // 新节点既是头结点也是尾结点
} else {
Node* current = *head;
while (current->next != NULL) { // 遍历到链表的最后一个节点
current = current->next;
}
current->next = newNode; // 将新节点添加到当前节点之后
}
}
```
3. 使用示例:
```c
int main() {
Node* head = NULL;
addNodeToTail(&head, 1);
addNodeToTail(&head, 2);
addNodeToTail(&head, 3); // 现在链表是 1 -> 2 -> 3
// ... 其他代码处理链表 ...
return 0;
}
```
阅读全文