永发信息网

关于C语言链表的问题?

答案:4  悬赏:50  手机版
解决时间 2021-05-06 14:06

对于一个结点来说,分为指针域和数据域,每一个指针域的相连就够成了一个链表。

我的问题是,在内存中,是先存放数据域还是先存放指针域?怎么通过指针域去找到想要的数据呢(在内存中)?由于各个结点可以存放在内存中的不同位置,可一个结点中的指针域和数据域的地址是否连续?

不知有知道的能否解答?

谢谢您!

最佳答案

首先明白指针域也是个变量存储的数据,一般没有存放先后


------------------------


| 数据域  | 指针域 |   == 这是个节点,数据域存储的是该节点的数据,而指针域是指向下


-----------------------


    一个节点内存地址的(这里以单链表为例),有指针域定位内存是:


 假设下面是个节点结构


struct node{


   int data;


   node *next;


}


定位数据域是curent->data ,current是指向结构体node的当前指针,真正的定位其实是通过内存偏移的:*(current ) == data , *(current + 4) == next


===================================


数据域和指针域的地址是联系的,他们总是被定义在同一个结构体中的

全部回答

先后无所谓,但一个节点的数据域和指针域自然是连续的(它们同在一个结构体内),如果是单向链表,就在指针域中存下一个节点的地址,双向的就前后都存呗。

如果是数组模拟链表的话,就是两个数组(双向三个),一个类型为数据域类型,另一个为整型,两数组中下标相同的元素为同一节点,整型数组记录对应节点的下一个节点的下标。

节点中的指针域和数据域是联系的 我可定义一个指针的时候可以用malloc给一个指针分配一个足够大的内存 或者用new也可以~~~~~~~~~

先存什么后存什么,是看你定义节点时的顺序,定义时数据在前,就先存数据,反之也成立.

在C中,注意指针域实际上也是数据,只不过这个数据是下一节点的内存地址,所以根据这个地址,就可以找到下一个节点.,节点与节点是不同位置的.

但节点内是连续的.所以找到了数据域就找到了指针域

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
)有3个人去投宿, 一晚30元. 三个人每人掏了10
世界前三位的钢铁巨头是…?几吨级的?
阿建汽修我想知道这个在什么地方
毕业后的人事代理问题 10分
09年的一级建造师成绩什么时候出来?
酷狗音乐里的《非主流女声慢摇2009精》那个歌
U盘被保护,不会弄
火箭是干什么的,电脑管家加速小火箭怎么关闭
宏凡名酒行地址在哪,我要去那里办事
天下贰魂剑60战场
QQ空间别人留言了怎么自动回复
学proe4.0proe2001哪个好
可以转校吗?
dnf阿修罗到底用什么武器好
鑫源老年养护公寓在什么地方啊,我要过去处理
推荐资讯
怎样把已经添加的应用删除?
请教关于带宽的问题,详细点的,1M2M代表什么
全乐窗帘大世界在哪里啊,我有事要去这个地方
不想回学校了怎么办
日照市地税局开发区分局打击涉税犯罪办公室地
怎么把QQ图标办事要闻弄出来
安徽国通高新管业股份有限公司采购部怎么联系
人到什么时候才算发育完成呢
怎样控制出汗
在楼梯样图中这个符号是什么意思?
绿色征途是不是在征途那个客户端里面?都有什
博隆陶瓷门类馆这个地址在什么地方,我要处理
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?