使用C语言编写代码,采用头插法创建单链表,并建立链表,展示链表的所有元素信息及调用删除操作后链表的所有元素信息。与调用插入操作后链表的所有元素信息。
时间: 2024-10-29 19:11:45 浏览: 16
c语言:创建单链表的头插法代码
在C语言中,我们首先需要定义一个结构体表示链表节点,然后创建函数分别用于头插法插入节点、显示链表内容以及删除节点。下面是一个简单的例子:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义链表节点结构
typedef struct Node {
int data;
struct Node* next;
} Node;
// 创建链表头部并插入节点(头插法)
Node* insertAtHead(Node** head, int value) {
// 分配新节点内存
Node* newNode = (Node*)malloc(sizeof(Node));
if (!newNode) {
printf("Memory allocation failed.\n");
return NULL;
}
// 初始化新节点
newNode->data = value;
newNode->next = *head;
// 更新头节点指针
*head = newNode;
return newNode;
}
// 显示链表所有元素
void displayList(Node* head) {
Node* current = head;
while (current != NULL) {
printf("%d -> ", current->data);
current = current->next;
}
printf("NULL\n");
}
// 删除指定位置的节点(这里仅删除第一个节点)
Node* deleteFirstNode(Node** head) {
if (*head == NULL) {
return NULL;
}
Node* temp = *head;
*head = (*head)->next; // 更新头节点
free(temp); // 释放已删除节点的内存
return *head;
}
int main() {
Node* head = NULL;
// 插入节点并显示链表
head = insertAtHead(&head, 1);
insertAtHead(&head, 2);
insertAtHead(&head, 3);
displayList(head); // 输出: 3 -> 2 -> 1 -> NULL
// 删除第一个节点并显示链表
head = deleteFirstNode(&head);
displayList(head); // 输出: 2 -> 1 -> NULL
// 再次插入节点并显示链表
insertAtHead(&head, 4);
displayList(head); // 输出: 4 -> 2 -> 1 -> NULL
return 0;
}
```
在这个示例中,我们先创建了一个空链表,然后通过头插法添加了几个节点,最后展示了链表的内容。接着删除了第一个节点,再次展示链表,最后又插入了一个新节点。
阅读全文