c语言单链表头插法怎么写
时间: 2023-09-13 08:06:23 浏览: 48
你可以使用以下代码来实现C语言中单链表的头插法:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义链表节点结构
typedef struct Node {
int data;
struct Node* next;
} Node;
// 头插法
Node* insertAtBeginning(Node* head, int data) {
// 创建新节点
Node* newNode = (Node*)malloc(sizeof(Node));
if (newNode == NULL) {
printf("内存分配失败\n");
return head;
}
newNode->data = data;
// 将新节点插入到头部
newNode->next = head;
head = newNode;
return head;
}
// 打印链表
void printList(Node* head) {
Node* temp = head;
while (temp != NULL) {
printf("%d ", temp->data);
temp = temp->next;
}
printf("\n");
}
// 主函数
int main() {
Node* head = NULL; // 初始化头节点为空
// 插入元素
head = insertAtBeginning(head, 3);
head = insertAtBeginning(head, 2);
head = insertAtBeginning(head, 1);
// 打印链表
printList(head);
return 0;
}
```
这段代码定义了一个单链表节点结构 `Node`,其中包含一个整型数据 `data` 和一个指向下一个节点的指针 `next`。
`insertAtBeginning` 函数用于在链表的头部插入新节点。它首先创建一个新节点,然后将新节点的 `next` 指针指向当前的头节点,再将头节点指向新节点。
`printList` 函数用于打印链表中的所有元素。
在主函数中,你可以根据需要调用 `insertAtBeginning` 函数来插入新节点,并使用 `printList` 函数打印链表的内容。
以上代码示例了如何在单链表中使用头插法插入元素,并打印出链表的内容。你可以根据自己的需求进行适当的修改和扩展。