陈辰sss 2022-08-23 13:22 采纳率: 66.7%
浏览 95
已结题

对链式存储中存储单元地址的一些疑问

各位好,我是一名大二的学生,初学数据结构,请问能给我解释一下 “链式存储设计时,结点内的存储单元地址一定连续” 这句话吗?插入结点没有影响吗?
同时我在网上看到有说“在链式存储中,结点之间的存储单元地址是不连续的。”,这又是怎么回事呢?结点间和结点内是两种情况吗?

  • 写回答

2条回答 默认 最新

  • m0_72938729 2022-08-23 13:42
    关注

    链式存储设计时,各个不同结点的存储空间可以不连续,但是结点内的存储单元地址则必须连续。
    typedef struct LNode {
    int value; // value中存放结点值域,默认是int型
    struct Lnode *next;//指向后继结点的指针
    }LNode; // 定义单链表结点类型
    上述定义了一个结构体,包括两部分,一是值域,二是指针域;每当定义一个结点都会产生这两个区域。
    这个value与next域必须是挨着的,称这个结点为内部。
    假如我们定义若干个不同的结点,把它们连接起来成为一个单链表。
    value区域,箭头区域则是指针域指向逻辑上相链接的下一个结点,但是它们在空间上不一定连续。
    而对于它们的结点内部一定是连续的。若第一个结点占用两个地址,那么value域的起始地址是1,则指针域的地址就是2。同理若第二个结点的value地址是10,则next域就是11。
    因此,在进行链式存储设计时,各个不同结点完全可以存储在不连续的空间上,而对于同一个结点内部,不论划分多少个区域,两个也好,三个也罢,总之内部的单元存储地址是连续的。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 8月31日
  • 已采纳回答 8月23日
  • 创建了问题 8月23日

悬赏问题

  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?