数据结构


⚡️数据结构-第一章
⚡️抽象数据类型案例
⚡️数据结构-第二章(1)-线性结构
⚡️数据结构-第二章(2)-线性表的顺序表示和实现
⚡️数据结构-第二章(3)-顺序表(含代码)
⚡️数据结构-第二章(4)-顺序表案例(含代码)

数据结构-第二章(5)-链式存储结构

  • 数据结构
  • 链式存储结构
    • 与链式存储相关的术语
    • 单链表、双链表、循环链表
    • 小结
  • 总结

链式存储结构

  • 用一组任意的存储单元存储线性表的数据元素
  • 这组存储单元可以是连续的,也可以是不连续的,甚至是零散的分布在内存的任意位置上的。
  • 链表中元素的逻辑次序与物理次序不一定相同

例如:

那怎么表示数据元素之间的逻辑关系呢?

答:可以在存储自己内容的同时也存储下一个元素的地址。存储数据元素的域称为数据域,存储直接后继位置的域称为指针域。指针域中存储的信息称作指针或链。这两部分信息组成ai的存储映象称为结点(Node)。n个结点(ai(1≤i≤n)的存储映象链结成一个链表,即为线性表。把链表中第1个结点的存储位置叫头指针。最后一个元素意味着没有直接后继规定最后一个结点指针为空(通常用NULL或^表示)

与链式存储相关的术语

单链表、双链表、循环链表

  • 为了更加方便对链表进行操作,会在单链表的第1个结点前附设一个头结点.头结点的数据域可以不存储任何信息,也可以存储如线性表的长度等附加信息,头结点的指针域存储指向线性表第1个元素的结点。

单链表由头指针唯一确定,因此单链表可用头指针名字来命名。

讨论1:如何表示空表

讨论2:在链表中设置头结点有什么好处?

①有了头结点,对在第一元素结点前插入结点和删除第一结点,其操作与其它结点的操作就统一了
②便于空表和非空表的统一处理
当链表不设头结点时,假设L为单链表的头指针,它应该指向首元结点,则当单链表为长度n为0的空表时,L指针为空(判定空表的条件可记为:L == NULL)。增加头结点后,无论链表是否为空,头指针都是指向头结点的非空指针。头指针指向头结点。若为空表,则头结点的指针域为空(判定空表的条件可记为:L ->next == NULL)
简述为:

讨论3:头结点的数据域内装的是什么?

链表(链式存储结构)的特点:

小结

总结

期待大家和我交流,留言或者私信,一起学习,一起进步!

数据结构-第二章(5)-链式存储结构相关推荐

  1. Python 数据结构 之 串 的链式存储结构

    本文所采用的数据结构模板为 <数据结构教程>C语言版,李春葆.尹为民等著. 改篇所涉及到的是 串 的链式存储结构. 用Python仿照C语言来实现. 文章转载请注明:  Python 数据 ...

  2. 数据结构-线性表(链式存储结构)

    线性表(链式存储结构) 特点: 用一组任意的存储单元存储线性表的数据结构,这组存储单元可以是连续的,也可以是不连续的. 对数据结构ai来说,除了存储其本身的信息之外,还需存储一个指示其后继的信息(即直 ...

  3. (数据结构)二叉树的链式存储结构

    二叉树的顺序存储的缺点 因为并不是每个二叉树都是完全二叉树,普通二叉树使用顺序表存储或多或少会存在空间浪费的现象 图 1 普通二叉树的转化 如上图 1,普通二叉树里只有二个元素,最好的存储方式当然是开 ...

  4. 数据结构与算法4——链式存储结构

    前面所讲的线性表的顺序存储结构,它最大的缺点就是插入和删除时需要移动大量元素,这显然就需要耗费时间. 线性表的链式存储结构的特点是用一组任意的存储单元存储线性表的数据元素,这组存储单元可以在内存中未被 ...

  5. BJFU_数据结构习题_218基于链式存储结构的图书信息表的最贵图书的查找

    欢迎登录北京林业大学OJ系统 http://www.bjfuacm.com 218基于链式存储结构的图书信息表的最贵图书的查找 描述 定义一个包含图书信息(书号.书名.价格)的链表,读入相应的图书数据 ...

  6. BJFU_数据结构习题_219基于链式存储结构的图书信息表的最爱图书的查找

    欢迎登录北京林业大学OJ系统 http://www.bjfuacm.com 219基于链式存储结构的图书信息表的最爱图书的查找 描述 定义一个包含图书信息(书号.书名.价格)的链表,读入相应的图书数据 ...

  7. BJFU_数据结构习题_222基于链式存储结构的图书信息表的旧图书的出库

    欢迎登录北京林业大学OJ系统 http://www.bjfuacm.com 222基于链式存储结构的图书信息表的旧图书的出库 描述 定义一个包含图书信息(书号.书名.价格)的链表,读入相应的图书数据来 ...

  8. php数据结构链表代码,数据结构之线性表——链式存储结构之单链表(php代码实现)...

    /** * * 1. 类LNode用作创建单链表时,生成新的节点. * 2. 类SingleLinkList用于创建单链表以及对单链表的一些操作方法(实例化此类就相当于创建了一个空链表) * 3. C ...

  9. 数据结构之线性表——链式存储结构之单链表(php代码实现)

    <?php /**** 1. 类LNode用作创建单链表时,生成新的节点.* 2. 类SingleLinkList用于创建单链表以及对单链表的一些操作方法(实例化此类就相当于创建了一个空链表)* ...

  10. 七、线性表的链式存储结构

    1.问题引入 开发数组类模板的原因在于:在创建基于顺序存储结构的线性表时,发现这样的线性表可能被误用,因为重载了数组访问操作符,使用时跟数组类似,但是线性表和数组有很大的区别,所以激发了新的需求:开发 ...

最新文章

  1. 小白也能看懂的Matplotlib简明教程
  2. 最牛逼的核心框架,没有之一!
  3. 基础、数据、开发、部署,AI 时代企业的全方位升级
  4. LeetCode Kth Largest Element in an Array(小根堆)
  5. perl学习:一些字符串操作
  6. Windows—JDK安装与环境变量配置
  7. 牛客网--单词倒排(Java)
  8. Activity 模版样式简介
  9. 在caffe中添加样本扩增的功能
  10. 计算机基础教程2 - 计算机发展历程
  11. AMD将统治2017年的PC及服务器市场?
  12. SelfUpdate 树不起作用
  13. 人脸检测于仕琪--libfacedetection
  14. 抖音上非常火的整人小程序
  15. PHP 之建行龙支付-被扫(商家扫码客户二维码),扫码枪使用
  16. Hubble数据库x某股份制商业银行 信用卡反欺诈项目构建2.4亿条社交网络库
  17. STM32 CubeMX 1ms定时中断的实现
  18. 查询linux服务器有哪些IP在连接
  19. 《鸟哥的Linux私房菜》Chapter6 20180806~20180810
  20. 03_使用scrapy框架爬取豆瓣电影TOP250

热门文章

  1. Python 安装第三方库
  2. 科学家的超级计算机,一千万年后的地球让人害怕,科学家已用超级计算机模拟出来了?...
  3. 浮点数数据误差eps处理(详细解析)
  4. Carbide UI designer
  5. 电话手表算术游戏不是计算机,数学逻辑智能 | 别开玩笑了,数学逻辑智能可不只是算术能力!...
  6. 轻轻松松运行起minicap
  7. 关于UOS系统下打包安装使用的问题总结
  8. React 组件设计指南
  9. bios设置raid启动模式Linux,IBM服务器开机进入WEBBIOS界面配置RAID
  10. 图灵奖得主Judea Pearl:因果推断论文本周推荐(2022.8.8)