一个c语言链表插入高手帮忙调下

来源:百度知道 编辑:UC知道 时间:2024/09/18 04:05:31
typedef datatype;
typedef struct Link
{
datatype data;
struct Link *next;

}Lnoe,*LinkList;
/*
LinkList *init()
{
LinkList *L;
L=(LinkList *)malloc(sizeof(LinkList));
L->next=NULL;
return L;
}
*/
input(LinkList L)
{
Lnoe *s;
int x;
scanf("%d",&x);
while(x!=-1)
{
s=(Lnoe *)malloc(sizeof(Lnoe));
s->data=x;
s->next=L->next;
L->next=s;
scaf("%d",&x);
}
return L;
}

void part(LinkList L)
{
int y;
Lnoe *p,*r,*q=NULL;
r=L->next;
p=(Lnoe *)malloc(sizeof(Lnoe));
scanf("%d",&y);
p->data=y;
while(r->data<p->data&&r!=NULL)
{
q=r;
r=r->next;
}
if(r->data>p->data)
{
p-next=q-next;
q-next=p;
}
e

input函数应该是void型,不用return.
有个scanf写成scaf了
part函数里有多个->写成了-
main里面L->next改成(*L)->next

我觉得你这个程序 应该不能插入,因为 申请的一个指针类型的数据L,你要通过函数改变它,但是你却在传参的时候传它的值进去,这样是不能改变的,除非你传它的地址进去,就可以通过函数改变它的值了。

原理就是:要通过函数改变一个变量的值,就要传这个变量的地址进去。