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

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

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

⚡️数据结构-第一章
⚡️抽象数据类型案例
⚡️数据结构-第二章(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:头结点的数据域内装的是什么?

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

小结

总结

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5605699.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存