为什么程序终止了,单链表有错误范围求大佬帮帮忙

[复制链接]
查看11 | 回复0 | 2021-1-27 05:07:21 | 显示全部楼层 |阅读模式

代码:
//Init初始化初始化链表
//Build创建一批新链表
//Insert输入位置输入要添加的数据
//Delete(Linklist*L,inti)i是删除的位置
//Updat(Linklist*L,inti,Typeelem)i是位置elem是要变更的数据
//length求链表长
//Print打印链表
//Search(Linklist*L,intelem)查找链表中与输入数据相同的位置
#include
#include
typedefintType;
typedefintStatus;
typedefstructnode{
Typedate;//数据域
structnode*next;//指针域
}Lnode,*Linklist;
StatusInit(Linklist*L)
{
Lnode*H=(Linklist)malloc(sizeof(Lnode));
H->next=NULL;
printf("初始化成功");
return1;
}
StatusBuild(Linklist*L)//尾插法
{
intn;
printf("想要创建的链表长度:\n");
scanf("%d",&n);
Linklistp,temp;
temp=(*L);
while(n>0)
{
p=(Linklist)malloc(sizeof(Lnode));
scanf("%d",&p->date);
p->next=NULL;
temp->next=p;
temp=p;
n--;
}
printf("链表创建成功");
return1;
}
voidlength(LinklistL)
{
intsum;
while(L->next)
{
sum++;
L=L->next;
}
printf("%d",sum);
}
StatusInsert(Linklist*L,inti,Typeelem)
{
Linklistp;
p=(*L);
intj=0;
while(p&&inext;
j++;
}
if(p&&i==j)
{
Lnode*H=(Linklist)malloc(sizeof(Lnode));
H->date=elem;
H->next=p->next;
p->next=H->next;
return0;
}
}
StatusDelete(Linklist*L,inti)
{
Linklistp=(*L);
intj=0;
while(p&&inext;
j++;
}
if(p&&i==j)
{
LinklistH;
H=p->next;
p->next=H->next;
free(H);
}
return0;
}
StatusUpdate(Linklist*L,inti,Typeelem)
{
intj=1;
while(L&&jnext;
j++;
}
if(L&&j==i)
{
(*L)->date=elem;
}
return0;
}
StatusSearch(LinklistL,inti)
{
intj=1;
while(L&&jnext;
j++;
}
if(i==j)
{
printf("%d",L->date);
}
return0;
}
StatusPrint(LinklistL)
{
while(L)
{
printf("%d",L->date);
L=L->next;
}
return0;
}
intmain(void)
{
Linklista;
Init(&a);
Build(&a);
Insert(&a,2,3);
Print(a);
Delete(&a,2);
Update(&a,2,4);
Print(a);
Search(a,3);
return0;
}
分 -->
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行