C语言描述:单链表问题,有人知道吗,急啊!!!

来源:百度知道 编辑:UC知道 时间:2024/05/28 11:10:40
Linklist Creat_Linklist1()
{Linklist H=(Linklist)malloc(sizeof(LNode));
H->next=NULL;
LNode *s; (这句什么意思,有人知道吗)
int x;
scanf("%d",&x);
while(x!=-1)
{Linklist s=(Linklist)malloc(sizeof(LNode));
s->date=x;
s->next=H->next;H->next=s;
scanf("%d",&x);
}
return H;
}
Linklist s=(Linklist)malloc(sizeof(LNode));
这句不是新插入的S,的定义吗,需要删掉(Linklist)吗?

LNode *s,是指向哪个结点啊,能说清楚点吗
LNode *s和LNode *s=H这两个意思,有点混淆

LNode *s,*r=H这个又是什么意思啊???没人能说清楚吗

1.我的意思不是整句删掉Linklist s=(Linklist)malloc(sizeof(LNode));而是删掉Linklist
2.s可以指向任何节点……我认真看了一下算法,这是个头插法创建链表的过程。H是头节点,且一直是头节点,而s不断的从第二位插进去。你可以画一个简图来理解这个算法。

//////////////////////////////////////////////

怎么会没有人知道……

应该是指向一个节点的指针的意思,不过上面写的有问题
while(x!=-1)
{Linklist s=(Linklist)malloc(sizeof(LNode)); //这句的Linklist去掉
s->date=x;
s->next=H->next;H->next=s;
scanf("%d",&x);
}

还有一般在定义单链表结构体的时候,就会有Linklist的定义了,那个和LNode* 的意义基本相同,一般可以换用(特殊不能换)。

LNode *s;
去看看指针那些内容
LNode就是你定义的类型 跟int float等内部类型是一样的了
int*p就是定义一个指向int型的指针
那么LNode *s就是定义一个指向LNode类型的指针