插入算法和删除演示:
#include <stdio.h>
#include <malloc.h>
#include <string.h>
#include <stdlib.h>
typedef struct Node {
int data; //数据域
struct Node * pNext; //指针域
}Node, *pNode;
//函数声明
pNode create_list();
void traverse_list(pNode pHead); //遍历
bool is_empty(pNode pHead); //判断链表是否为空
int length_list(pNode pHead); //链表的长度
bool insert_list(pNode, int, int); //插入 第一个参数表示插入的链表 第二个参数表示插入的位置 第三个参数表示插入的元素
bool delete_list(pNode, int, int *); //第一个参数表示要删除的位置,第二个参数表示要删除的位置 第三参数表示删除的元素的地址放入指针
void sort_list(pNode pHead);
int main(void) {
pNode pHead = NULL; //等价于 struct Node *pHead=NULL
pHead = create_list(); //create_list()创建一个非循环单链表,并将该链表的头结点的地址赋给pHead
traverse_list(pHead); //遍历输出
/**
int len = length_list(pHead);
printf("链表的长度%d\n", len);
sort_list(pHead); //选择排序
traverse_list(pHead); //遍历输出
*/
insert_list(pHead, 4, 33);
traverse_list(pHead);//遍历输出
in