为什么三重链表不存在?

3

我想知道为什么三重链表不存在,但双向链表存在?

与双向链表不同,为什么不能在代码中使用另一个指针来存储另一个地址以指向新节点?


1
它会指向什么? - Sami Kuhmonen
1
你可以这样做,但是由于数据结构可能不仅仅提供线性顺序,所以它可能被称为其他名称而不是“列表”。我猜你可能有第三个指针的原因是指向列表的开头,如果有理由能够在不遍历列表的情况下到达列表的开头(或结尾)。我猜这种东西有限的用途,因为我想不起来有人使用过这样的东西(或者如果我确实见过,我也没有认为它有什么值得注意的地方 - 只是另一个可以用于某些事情的指针)。 - Michael Burr
1
你可能也会对三叉树感兴趣。 - Michael Burr
“三重链接列表”被称为二叉树,而不是列表(只要您不引入循环)。节点中的第三个指针从根本上改变了数据结构的性质。另一方面,如果您想将第三个指针用于“数据”,那么这就不再是结构的问题了 - 将节点携带的“数据”更改为包括额外信息即可。 - Amadan
1个回答

9

链表是一种线性数据结构。它可以向前移动(单向链表),或向前和向后移动(双向链表)。由于第三个指针会多余,所以在一维数据结构中不存在第三个指针。它将指向哪个方向?

二叉树也是一种二维数据结构,每个节点有两个指针,分别指向左子节点或右子节点。通常还会有第三个指针指向父节点。

您可以添加任意数量的节点指针。例如,有三叉树四叉树八叉树和各种自定义的n维数据结构。但它们不被称为“列表”,因为“列表”意味着顺序结构。


1
我得承认,这是非常好的答案。 - sethlearn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接