实现单链表的创建操作 使用头插法创建单链表 使用尾插法创建单链表
时间: 2024-10-09 21:08:07 浏览: 41
单链表 创建 头插法 尾插法 就地逆置
5星 · 资源好评率100%
在C语言中,我们可以使用结构体和指针来实现单链表。这里分别介绍如何使用头插法(即在链表头部插入元素)和尾插法(即在链表尾部插入元素)创建单链表。
**1. 首先,定义链表节点结构:**
```c
typedef struct Node {
int data; // 数据域
struct Node* next; // 指向下一个节点的指针
} Node;
```
**2. 使用头插法创建单链表:**
- 初始化链表为空(只有一个空节点)
- 插入新元素时,将新节点的`next`指向当前头节点,然后更新头节点为新节点。
```c
void insertAtHead(Node** head, int value) {
Node* newNode = (Node*)malloc(sizeof(Node)); // 分配内存
newNode->data = value;
newNode->next = *head; // 新节点的next指向原头节点
*head = newNode; // 更新头节点为新节点
}
```
**3. 使用尾插法创建单链表:**
- 初始化链表为空
- 当插入新元素时,遍历链表找到最后一个节点,然后在其后添加新节点
```c
void insertAtTail(Node** head, int value) {
if (*head == NULL) { // 如果链表为空,直接插入
Node* newNode = (Node*)malloc(sizeof(Node));
newNode->data = value;
newNode->next = NULL;
*head = newNode;
return;
}
Node* current = *head;
while (current->next != NULL) {
current = current->next;
}
Node* newNode = (Node*)malloc(sizeof(Node));
newNode->data = value;
newNode->next = NULL; // 新节点的next设为NULL,表示这是尾节点
current->next = newNode; // 将新节点链接到现有链表末尾
}
```
记得在使用完链表后释放内存,避免内存泄漏。
阅读全文