链表
链表是多个元素组成的列表。但是元素的存储是不连续的,用next指针连在一起。
链表和数组的区别
他们都是存多个元素的。但是数组如果在非首尾增加或删除元素的时候,数组中所有元素都要移动。而链表的话是不需要的,只需要更改next的指向即可。
js中模拟链表
js中也没有链表数据结构。通常用对象(Objcet)去模拟链表。
let a = {val:'a'}
let b = {val:'b'}
let c = {val:"c"}
let d = {val:'d'}
a.next = b
b.next = c
c.next = d
这样就实现了最简单的链表
遍历链表
通过不断改变next的指向来遍历链表中的值
// 遍历链表
let obj = a
while(obj){
console.log(obj.val);
obj = obj.next
}
在链表中插入值
只需要修改next 的值,就可以插入数据
let f = {val:'f'}
c.next = f
f.next = d
链表中删除
直接修改next 的指向就可以实现删除,下面的代码就是删除了f 把删除的节点的上个next指向删除节点的下个next即可。
c.next = d