JS 实现单向链表、双向链表
单向链表
在计算机科学中,单链表是一种数据结构,保存了一系列链接的节点。 每个节点中包含数据和一个可指向另一个节点的指针。
单链表的操作
因为单链表包含节点,这两者的构造函数可以是两个独立的构造函数,所以我们需要些构造函数:Node
和 SinglyList
Node
data
存储数据next
指向链表中下一个节点的指针
SinglyList
_length
用于表示链表中的节点数量head
分配一个节点作为链表的头add(value)
向链表中添加一个节点searchNodeAt(position)
找到在列表中指定位置 n 上的节点remove(position)
删除指定位置的节点
单链表实现
|
|
双向链表
双向链表具有单链表的所有功能,并将其扩展为在链表中可以进行双向遍历。 换句话说,我们可从链表中第一个节点遍历到到最后一个节点;也可以从最后一个节点遍历到第一个节点。
双向链表的操作
我们的链表将包括两个构造函数:Node
和DoublyList
。看看他们是怎样运作的。
Node
data
存储数据。next
指向链表中下一个节点的指针。previous
指向链表中前一个节点的指针。
DoublyList
_length
保存链表中节点的个数head
指定一个节点作为链表的头节点tail
指定一个节点作为链表的尾节点add(value)
向链表中添加一个节点searchNodeAt(position)
找到在列表中指定位置 n 上的节点remove(position)
删除链表中指定位置上的节点
双向链表的实现
|
|