删除和插入那块,前面的判断和指针的移动 是真的没看懂?
希望大佬能够分享
链表的部分功能实现:
PNODE creat_list(void); // 创建一个链表
void traverse_list(PNODE pHead); // 遍历一个 链表
bool isEmpty_list(PNODE pHead); // 判断链表是否为空
int length_list(PNODE pHead); // 获取链表的长度
void sort_list(PNODE pHead); // 链表排序
bool insert_list(PNODE pHead, int pos, int val); // 向链表中插入一个值
bool delete_list(PNODE pHead, int pos, int * val); // 删除链表中的元素
#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
// 定义 bool
typedef enum {
false = 0,
true
} bool;
typedef struct Node
{
int data; // 数据域
struct Node* pNext; // 指针域
}NODE, * PNODE;
PNODE creat_list(void); // 创建一个链表
void traverse_list(PNODE pHead); // 遍历一个 链表
bool isEmpty_list(PNODE pHead); // 判断链表是否为空
int length_list(PNODE pHead); // 获取链表的长度
void sort_list(PNODE pHead); // 链表排序
bool insert_list(PNODE pHead, int pos, int val); // 向链表中插入一个值
bool delete_list(PNODE pHead, int pos, int * val); // 删除链表中的元素
int main(void)
{
// 先创建头节点节点
PNODE pHead = NULL;
int val; // 存放删除的值
pHead = creat_list(); // 创建一个链表,将 链表的 头节点地址 赋值给pHead
traverse_list(pHead);
isEmpty_list(pHead);
printf("链表的长度为:%d\n", length_list(pHead));
sort_list(pHead);