C语言链表的创建和尾插和头删
时间: 2024-09-07 20:04:26 浏览: 49
在C语言中创建链表,通常需要定义链表的节点结构体,然后通过指针操作来实现链表的尾插和头删。
首先,定义链表节点结构体,例如:
```c
typedef struct Node {
int data; // 数据域
struct Node* next; // 指针域,指向下一个节点
} Node;
```
创建链表:
```c
Node* createList() {
Node* head = NULL; // 初始化头指针为空
return head;
}
```
尾插操作:
```c
void appendNode(Node** head, int value) {
Node* newNode = (Node*)malloc(sizeof(Node)); // 创建新节点
newNode->data = value; // 给新节点赋值
newNode->next = NULL; // 新节点的指针域设置为NULL
if (*head == NULL) { // 如果链表为空,新节点即为头节点
*head = newNode;
} else {
Node* current = *head;
while (current->next != NULL) { // 遍历到链表尾部
current = current->next;
}
current->next = newNode; // 将新节点插入链表尾部
}
}
```
头删操作:
```c
void deleteHeadNode(Node** head) {
if (*head == NULL) { // 链表为空,直接返回
return;
}
Node* temp = *head; // 临时保存头节点
*head = (*head)->next; // 将头指针指向下一个节点
free(temp); // 释放原头节点的内存
}
```
使用这些函数可以方便地实现链表的创建、尾部插入和头部删除操作。
阅读全文