c语言数据结构单链表插入
时间: 2024-03-23 08:34:23 浏览: 110
在C语言中,单链表是一种常见的数据结构,它由一系列节点组成,每个节点包含一个数据元素和一个指向下一个节点的指针。插入操作是向链表中添加新节点的过程。
要在单链表中插入一个新节点,需要进行以下步骤:
1. 创建一个新节点,并为其分配内存空间。
2. 将要插入的数据赋值给新节点的数据域。
3. 将新节点的指针域指向原链表中插入位置的下一个节点。
4. 将原链表中插入位置的前一个节点的指针域指向新节点。
下面是一个示例代码,演示了如何在单链表中插入一个新节点:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义链表节点结构
struct Node {
int data;
struct Node* next;
};
// 在链表中插入新节点
void insertNode(struct Node** head, int newData) {
// 创建新节点
struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));
newNode->data = newData;
newNode->next = NULL;
// 如果链表为空,则将新节点作为头节点
if (*head == NULL) {
*head = newNode;
return;
}
// 找到插入位置的前一个节点
struct Node* prevNode = *head;
while (prevNode->next != NULL) {
prevNode = prevNode->next;
}
// 将新节点插入链表
prevNode->next = newNode;
}
// 打印链表
void printList(struct Node* node) {
while (node != NULL) {
printf("%d ", node->data);
node = node->next;
}
printf("\n");
}
int main() {
struct Node* head = NULL;
// 插入节点
insertNode(&head, 1);
insertNode(&head, 2);
insertNode(&head, 3);
// 打印链表
printf("链表内容:");
printList(head);
return 0;
}
```
这段代码创建了一个单链表,并在其中插入了三个节点。最后,通过调用`printList`函数,打印出链表的内容。
阅读全文