标题:关于链式存储用C语言实现的疑问
只看楼主
fishxiaoyun
Rank: 2
等 级:论坛游民
帖 子:15
专家分:14
注 册:2020-9-2
结帖率:100%
已结贴  问题点数:20 回复次数:7 
关于链式存储用C语言实现的疑问
c语言学了一点皮毛,在看数据结构的时候,老师讲的链式存储
用c来实现可以用以下代码。
不明白结构体内的那个指针是什么意思,如何实现指向下一个节点的地址。
谢谢。
typedef struct LNode
{
        int data;
        struct LNode *next;//这个指针指向的是哪?什么意思?
}LNode;
        LNode *L;
        L=(LNode*)malloc(sizeof(LNode));//这里的(LNode*)是什么意思?
        A->next=B;
        B->next=C;
搜索更多相关主题的帖子: C语言 链式 next 存储 疑问 
2020-09-13 12:55
纯蓝之刃
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:76
帖 子:554
专家分:3690
注 册:2019-7-29
得分:20 
struct LNode *next; 是指向下一个结构的首地址,这样就可以通过next->data访问下一个节点的数据了,而next->next->data就是访问下下节点的数据,以此类推形成一条链的访问形式。
L=(LNode*)malloc(sizeof(LNode));malloc()会返回一块空间的首地址,而(LNode*)就是将指针的访问类型转换成LNode类型,L+1访问的是sizeof(LNode)长度之后的地址,这样就将这块空间分成了LNode结构大小的一块一块的去访问了。

一沙一世界,一花一天堂。无限掌中置,刹那成永恒。
2020-09-13 19:58
八画小子
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:37
帖 子:705
专家分:2043
注 册:2010-11-11
得分:0 
可以先画个示意图看看。图中的箭头其实就是C代码中的指针。
2020-09-13 22:15
fishxiaoyun
Rank: 2
等 级:论坛游民
帖 子:15
专家分:14
注 册:2020-9-2
得分:0 
结构体内定义的指针struct LNode *next; 不是指向了LNode结构体本身么?
还是说*next是固定的一个格式,就是表示指向下一个节点?
*next可以换成*p或者*a什么的其他指针变量么?
L=(LNode*)malloc(sizeof(LNode));这句有点看懂了。
是不是把malloc分配的空间强制转换成LNode的类型。
2020-09-14 05:52
fishxiaoyun
Rank: 2
等 级:论坛游民
帖 子:15
专家分:14
注 册:2020-9-2
得分:0 

是不是通过struct LNode实例化几个变量A,B,C
再用
        A->next=B;
        B->next=C;
来实现A的指针分量指向B,B的指针分量指向C这种链式存储结构
2020-09-14 09:30
纯蓝之刃
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:76
帖 子:554
专家分:3690
注 册:2019-7-29
得分:0 
struct LNode *next只是一个指针,指向一块空间的首地址,这块空间是使用malloc申请的LNode结构大小的空间。*next只是指针名字,换成任意的就可以。
LNode L0,*L1,*L2,*L3;                        //假设L0为链表头
        L1=(LNode*)malloc(sizeof(LNode));        //L1为申请的LNode大小空间的首地址
        L0.next=L1;                                //这样L0内的next就指向了L1申请的空间,通过L0.next就可以访问L1节点内的内容了。
        L2=(LNode*)malloc(sizeof(LNode));        //L1为申请的LNode大小空间的首地址
        L1->next=L2;                                //这样L1内的next就指向了L2申请的空间,通过L1->next就可以访问L2节点内的内容了,在这里L1->next也可以使用L0.next->next。这样以此列推就可以通过L0的一级一级往下链接访问这个数据结构了。

一沙一世界,一花一天堂。无限掌中置,刹那成永恒。
2020-09-14 09:34
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
得分:0 
回复 5楼 fishxiaoyun
是的 这样做就是链表了

https://zh.
2020-09-14 09:40
fishxiaoyun
Rank: 2
等 级:论坛游民
帖 子:15
专家分:14
注 册:2020-9-2
得分:0 
回复 6楼 纯蓝之刃
谢谢版主,讲的很详细了
这次我明白了,其实就是指针的灵活运用。
学到了几个知识点,非常感谢。
2020-09-15 05:14



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-503140-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.175509 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved