用c语言实现无头结点的单链表的插入操作
时间: 2023-05-19 11:03:25 浏览: 113
可以使用以下代码实现无头结点的单链表的插入操作:
```
#include <stdio.h>
#include <stdlib.h>
struct Node {
int data;
struct Node* next;
};
void insert(struct Node** head_ref, int new_data) {
struct Node* new_node = (struct Node*)malloc(sizeof(struct Node));
new_node->data = new_data;
new_node->next = (*head_ref);
(*head_ref) = new_node;
}
void printList(struct Node* node) {
while (node != NULL) {
printf("%d ", node->data);
node = node->next;
}
}
int main() {
struct Node* head = NULL;
insert(&head, 1);
insert(&head, 2);
insert(&head, 3);
insert(&head, 4);
printf("Created Linked List: ");
printList(head);
return 0;
}
```
这段代码中,我们定义了一个结构体 `Node`,其中包含一个整型数据 `data` 和一个指向下一个节点的指针 `next`。我们使用 `insert` 函数向链表中插入新节点,该函数接受一个指向指针的指针 `head_ref` 和一个整型数据 `new_data`。在函数中,我们首先创建一个新节点 `new_node`,然后将其数据设置为 `new_data`,将其指针指向当前链表的头节点 `(*head_ref)`,最后将 `head_ref` 指向新节点,使其成为新的头节点。我们还定义了一个 `printList` 函数,用于打印链表中的所有节点。在 `main` 函数中,我们创建了一个空链表 `head`,然后向其中插入四个节点,最后打印整个链表。
阅读全文