#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#define ERROR 0
// 单链表结点的定义
typedef struct LNode{
int data; // 结点的数据域
struct LNode *next;
}LNode, *LinkList;
// 单链表的初始化
LinkList InitLinkList(){
LinkList L = (LinkList)malloc(sizeof(LNode));
if(!L){
return ERROR;
}
L ->next = NULL;
return L;
}
// 创建单链表(n为创建单链表的元素的个数)
LinkList CreateLinkList(LinkList L, int n){
LinkList rear = InitLinkList(); // 尾指针
LinkList p;
for(int i=n; i>0; i--){
p = (LinkList)malloc(sizeof(LNode));
if(!p){
return ERROR;
}
// 将第一个结点和头结点连接起来
if(!L->next){
L->next = p;
}
// 输入数据并将值赋给结点的数据域
scanf("%d", &p->data);
// 将尾结点与最后一个结点连接
rear ->next = p;
rear = p;
}
// 将终端结点的指针域置空
if(rear){
rear->next = NULL;
}
return L;
}
// 在指定的位置插入数据
void insertLinkList(LinkList L, int index, int x){
int i=0;
LinkList p = L;
while(p->next){