Data structures 什么是不对称链表的必要性

Data structures 什么是不对称链表的必要性,data-structures,linked-list,Data Structures,Linked List,我正在研究数据结构。我遇到了非对称链表,它声明它是一种特殊类型的双链表,其中 1. next link points to next node address 2. prev link points to current node address itself 但我想知道 1. what are the advantages we get by designing such linked list? 2. what kind of applications this would be su

我正在研究数据结构。我遇到了
非对称链表
,它声明它是一种特殊类型的双链表,其中

1. next link points to next node address 
2. prev link points to current node address itself
但我想知道

1. what are the advantages we get by designing such linked list? 
2. what kind of applications this would be suitable for?
任何人都可以解释更多关于非对称链表的信息吗。我在谷歌上搜索了一下,但找不到相关的答案。多谢各位


来源:

给定一个来自双链接列表的节点指针,我们可以通过“上一个”和“下一个”遍历所有节点,而如果提供的指针没有遍历,则单链接列表无法遍历所有节点;t指向第一个节点

例如,从链表中删除节点。对于单链表,您必须从头部遍历列表以查找特定节点,并且还需要针对特定节点记录上一个节点,这会导致时间复杂度O(n)。但是,使用双链接列表,可以使用固定时间对特定节点执行删除

简而言之,给定一个特定的节点,对于单链表,如果我们需要使用它的上一个节点信息,那么从头部开始的遍历是不可避免的,而双线表则不是


顺便说一下,STL中的列表和Java中的LinkedList都是用双链表实现的。

我同意Wiki页面有误导性。以下是LL和ALL之间的区别:

打开链接列表:

node.next = nextNode
node.prev = prevNode
node.next = nextNode
node.prev = prevNode.next
非对称链表:

node.next = nextNode
node.prev = prevNode
node.next = nextNode
node.prev = prevNode.next
请注意prevNode与prevNode.next之间的差异


当指向节点内的指针时,仍然保留向后遍历列表的能力(您可以通过从prevNode中减去来获得prevNode地址。下一步),它可以简化列表上的插入和删除操作,尤其是在开始元素上。

您甚至没有提到非对称链表??