data-structures - 双向链表是非线性数据结构还是线性数据结构?

标签 data-structures doubly-linked-list

线性数据结构按顺序遍历数据元素,其中只能直接到达一个数据元素。例如:数组、链表。

但是在双向链表中,我们可以使用上一个指针和下一个指针来访问两个数据元素。

那么我们可以说双向链表是一种非线性数据结构吗?

如果我错了,请纠正我。

谢谢你。

最佳答案

非线性数据结构是那些元素以非线性方式出现的数据结构,它需要二维或二维以上的表示。元素 可能或可能不是(大部分)是 存储在连续的内存位置,而不是以任何顺序/非线性方式存储,就好像您跳过了它们之间的元素。访问元素也是以乱序模式完成的。

示例:- 一棵树,这里可以从根迭代到右子节点,再到其右子节点,...等等---从而跳过所有左节点。

但是,在双向链表中,您必须仅按顺序(线性)移动,向前移动(使用前向指针)或向后移动(使用前一个指针)。
你不能在不遍历中间元素的情况下从列表中的任何元素跳转到任何远处的元素。

因此,双向链表是一种线性数据结构。在线性数据结构中,元素以线性方式排列(即一维表示)。

关于data-structures - 双向链表是非线性数据结构还是线性数据结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30486380/

相关文章:

c++ - 删除双向链表中的项目

c - 结构程序停止,没有任何错误

string - 将字符串a转换为字符串b

java - 在双向链表中按字母顺序排序

java - 添加(索引,元素)方法

C - 链表 - 删除头部 - 段错误

c - 嵌套结构指针无法访问地址 0x8 处的内存

java - 使用数据库中的数据创建 JSON 数组

python - 链表 : Finding intersection of 2 linked lists by swapping their pointers after reaching the end of one of them

c - 在 MIDI 合成器中播放音符的数据结构