关于对链表这种数据结构,原来在c语言中有提到过,链表一种长度可变的动态列表。分为单向列表和双向列表。
- 单向列表:每个节点不仅存在自身的值,同时也存在指向下一个元素的指针
- 双向链表:它的节点中存在两个指针,一个指向上一个节点的指针,一个指向下一个节点的指针,并且存在自己的一个值。
// 定义一个几点类型构造函数
function Node(v) {
this.val = v;
this.next = null;
}
function ArrayList() {
// 定义链表的头结点
this.head = new Node(null);
// 定义一个节点,它始终指向链表中的最后一个节点
this.tail = this.head;
// 在链表的末尾添加一个节点
this.append = function (v) {
let node = new Node(v);
this.tail.next = node;
// 用this.tail始终指向当前链表的最后一个节点
this.tail = node;
};
// 在第no个节点后面添加一个新节点<