错误代码
#include <stdio.h>
#include <stdlib.h>
#define OK 1
#define ERROR 0
#define OVERFLOW -2
typedef int status,Elemtype;
typedef struct LNode{
Elemtype data;//数据域
struct LNode *next;//指针域
}LNode,*LinkList;
//函数声明
//创建单链表
LinkList CreateList(int n);
void ShowList;
LinkList CreateList(int n){
//创建一个空的单链表
LinkList L=(LNode*)malloc(sizeof(LNode));
L->next=NULL;
//采用后插法进行创建
LNode *r=L;//初始化尾指针
int i;
LNode *p;
for(i=0;i<n;i++){
//创建新节点
p=((LNode*)malloc(sizeof(LNode)));
p->next=NULL;
printf("请输入第%d个数据元素:",i);
scanf("%d",&p->data);
//插入到尾结点后,成为新的尾结点
r->next=p;
r=p;
}
printf("单链表创建完毕!");
return L;
}
void ShowList(LinkList L){
LNode *p=L->next;
printf("单链表为:");
while(p){
printf("%d ",p->data);
p=p->next;
}
}
//插入函数
status ListInsert(LinkList L,int i,Elemtype e){
LNode *p=L;
int j=0;
while(p&&j<j-1){
p=p->next;
j++;
}
if(!p||j>i-1){
printf("插入位置不合法");
return ERROR;
}
LNode *s=(LNode *)malloc(sizeof(LNode));
s->next=e;
s->next=p->next;
p->next=s;
printf("插入成功,更新后的单链表为:");
ShowList(L);
return OK;
}
int main()
{
LinkList L=NULL;
printf("请输入要创建的单链表的长度:");
int n;
scanf("%d",&n);
L=CreateList(n);
ShowList(L);
printf("\n请输入要插入的位置和值,用空格间隔:");
int i;
Elemtype e;
scanf("%d %d",&i,&e);
ListInsert(L,i,e);
}