前端必会算法——双向链表

上一篇:
前端必会算法——栈和队列

双向链表

双向链表就是我不但可以指向下一个,也可以指向上一个

代码演示:

function Node(value) {
  this.value;
  this.next = null; // 指向后面
  this.prev = null; //指向前面
}

var node1 = new Node(1);
var node2 = new Node(2);
var node3 = new Node(3);
var node4 = new Node(4);
var node5 = new Node(5);

node1.next = node2;
node2.prev = node1;
node2.next = node3;
node3.prev = node2;
node3.next = node4;
node4.prev = node3;
node4.next = node5;
node5.prev = node4;

双向链表的优点:无论给出哪一个节点,都能对整个链表进行遍历。

双向链表的缺点:多耗费一个引用的空间,而且构建双向链表比较复杂。

双向链表能够做到的,使用单向链表几乎都能够实现;我们通常不会使用双向链表,知道有这么个东西就可以了。遇到题用正常的逻辑做就可以,没有什么特殊的算法。

下一篇:
前端必会算法——二维数据结构

你可能感兴趣的:(算法,javascript,链表,前端)