主函数调用头插法单链表(c语言)
时间: 2024-09-26 09:06:21 浏览: 46
C语言实现头插法、尾插法两种方法来构建带头结点的单链表.zip
在C语言中,主函数通常用于初始化并操作数据结构,如头插法单链表。头插法是将新元素插入到链表头部的操作。下面是一个简单的例子,展示如何创建一个头插法的单链表结构以及在主函数中对其进行操作:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义单链表节点结构体
typedef struct Node {
int data; // 节点数据
struct Node* next; // 指向下一个节点的指针
} Node;
// 创建新的节点函数
Node* create_node(int value) {
Node* newNode = (Node*)malloc(sizeof(Node));
if (newNode == NULL) {
printf("Memory allocation failed.\n");
return NULL;
}
newNode->data = value;
newNode->next = NULL;
return newNode;
}
// 头部插入节点的函数
void insert_at_head(Node** head, int value) {
Node* newNode = create_node(value);
if (newNode != NULL) {
newNode->next = *head;
*head = newNode;
printf("Inserted %d at the beginning of the list.\n", value);
}
}
// 主函数示例
int main() {
Node* head = NULL; // 初始化链表头
// 插入一些节点
insert_at_head(&head, 5);
insert_at_head(&head, 3);
insert_at_head(&head, 7);
// 打印链表
Node* temp = head;
while (temp != NULL) {
printf("%d -> ", temp->data);
temp = temp->next;
}
// 清理内存(如果需要)
Node* current = head;
while (current != NULL) {
Node* temp = current;
current = current->next;
free(temp);
}
return 0;
}
```
在这个例子中,`main`函数首先初始化链表为空,然后通过`insert_at_head`函数在头部添加元素,并最后遍历链表显示所有元素。记得,在实际应用中,你需要处理好内存分配和释放,以避免内存泄漏。
阅读全文