【发布时间】:2015-08-09 18:29:06
【问题描述】:
线性数据结构按顺序遍历数据元素,其中只能直接到达一个数据元素。例如:数组、链表。
但是在双向链表中,我们可以使用前一个指针和下一个指针来访问两个数据元素。
那么我们可以说双向链表是一种非线性数据结构吗?
如果我错了,请纠正我。
谢谢。
【问题讨论】:
标签: data-structures doubly-linked-list
线性数据结构按顺序遍历数据元素,其中只能直接到达一个数据元素。例如:数组、链表。
但是在双向链表中,我们可以使用前一个指针和下一个指针来访问两个数据元素。
那么我们可以说双向链表是一种非线性数据结构吗?
如果我错了,请纠正我。
谢谢。
【问题讨论】:
标签: data-structures doubly-linked-list
非线性数据结构是那些元素以非线性方式出现的数据结构,它需要二维或多于二维的表示。元素可能或可能不(大部分)存储在连续的内存位置,而是以任何顺序/非线性存储,就好像您跳过了中间的元素一样。访问元素也是无序的。
示例:- 一棵树,这里可以从根迭代到右子节点,再到其右子节点,等等——从而跳过所有左节点。
但是,在双向链表中,您只能按顺序(线性)移动,向前移动(使用前向指针)或向后移动(使用前一个指针)。 在不遍历中间元素的情况下,你不能从列表中的任何元素跳转到任何远处的元素。
因此,双向链表是一种线性数据结构。在线性数据结构中,元素以线性方式排列(即一维表示)。
【讨论】:
你错了; 2 个理由:
【讨论】:
它仍然是顺序的:与可以随机访问每个元素的数组相比,您需要遍历列表中的一些元素才能到达特定元素。
但是,您可以线性前进或后退,这可能会优化搜索。
【讨论】:
链表基本上是一种线性数据结构,因为它以线性方式存储数据。线性数据结构是以线性格式存储数据,遍历是顺序的,而不是曲折的。
【讨论】:
这取决于您打算在哪里应用链表。如果基于存储,链表被认为是非线性的。另一方面,如果你基于访问策略,那么链表被认为是线性的。
【讨论】: