数据结构 在线性链表中如何插入一个元素 用C语言写出具体算法
时间: 2024-09-19 14:06:40 浏览: 45
在线性链表中插入一个元素通常涉及三个步骤:创建新节点、更新指针以及可能的话调整头指针。这里是一个简单的C语言实现插入操作的示例,假设我们有一个结构体`Node`表示链表节点,包含整数值`data`和指向下一个节点的指针`next`:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义链表节点结构体
typedef struct Node {
int data;
struct Node* next;
} Node;
// 插入函数
void insertNode(Node** head, int value) {
// 如果链表为空,创建新节点作为头节点
if (*head == NULL) {
*head = (Node*)malloc(sizeof(Node));
(*head)->data = value;
(*head)->next = NULL;
} else {
// 创建新节点
Node* newNode = (Node*)malloc(sizeof(Node));
newNode->data = value;
// 找到最后一个节点并将其next指向前一个节点
Node* current = *head;
while (current->next != NULL) {
current = current->next;
}
// 将新节点连接到最后一个节点之后
current->next = newNode;
}
}
// 示例使用
int main() {
Node* head = NULL;
insertNode(&head, 5); // 插入5
insertNode(&head, 10); // 插入10
// 打印链表
Node* temp = head;
while (temp != NULL) {
printf("%d -> ", temp->data);
temp = temp->next;
}
return 0;
}
阅读全文