C语言中有关链表的基础知识

 我来答
欧璟卫思山
2019-01-19 · TA获得超过3622个赞
知道大有可为答主
回答量:3039
采纳率:34%
帮助的人:234万
展开全部
举个例子:假设你想到C的家中拿一样东西,但你不知道C家的地址,不过,你知道A家的地址,A家有B的地址,B有C的地址,
所以,你到A处找到B的地址,再去B处找到C的地址,就知道C的地址了。链表就是这个意思,每一个元素都保存有下一个元素的地址,根据这个地址,你可以依次找到最后一个元素,故形成了一个链。
这个代码,重点就在于结构体,结构体名是:node
其中包含两个成员变量,一个是
int类型的数据,一个就是
例子中的

地址
”,这个

地址

是一个变量的地址,而这个变量又是你定义的结构体
node
的存储位置,而这个变量又包含两个变量(int数据和

地址

),这样就形成了链表。
以后你会知道这种

地址

就是一种变量

指针。
缪洮冯菀
2019-09-02 · TA获得超过3668个赞
知道小有建树答主
回答量:3186
采纳率:29%
帮助的人:453万
展开全部
链表的关键就在这里:
struct
node
*
pnext;
你要遍历的时候,可以通过pnext获得下一个struct
node的地址。
比如struct
node
a,它的下一个是struct
node
b,这样,a->pnext
=
&b
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
愈君己琲瓃
2019-06-29 · TA获得超过3864个赞
知道大有可为答主
回答量:3103
采纳率:28%
帮助的人:246万
展开全部
#include<stdio.h>
#include<stdlib.h>
#define
len
sizeof(struct
person)
struct
person
{
int
num;
struct
person
*next;
}*p1,*p2,*head=0;
main()
{
int
i,n;
scanf("%d",&n);
p2=head=(struct
person
*)malloc(len);
p2->num=1;
for(i=2;i<=n;i++)
{
p1=(struct
person
*)malloc(len);
p1->num=i;
p2->next=p1;
p2=p1;
}
p1->next=head;
printf("%d
",head->num);//这里先输出表头元素的值.
for(p1=head->next;p1!=head;p1=p1->next)//这里不能p++的,因为链表不是连续存放的.
printf("%d
",p1->num);
printf("\n");
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式