第一模块:课程介绍
课程名称:JavaScript版数据结构与算法 轻松解决前端算法面试
课程章节:5-1 链表简介
主讲老师:lewis
第二模块:课程内容
了解前端中的链表,熟悉JS中链表的使用
第三模块:课程收获
1. 链表是什么?
-
多个元素组成的列表。
-
元素存储不连续,用next指针连在一起。
2. 数组和链表的区别
- 数组:增删非首尾元素时往往需要移动元素,之前使用队列和栈的时候,如果删除首尾的话,都还好说,但是要删除中间的话,删除完成后,这个位置后面的所有元素都需要往前移动一位
- 链表:增删非首尾元素的时候,不需要移动位置,只需要修改next的指向就好了。
3. JS中的链表
在js中,使用Object来模拟一个链表
代码示例:
const a = {val:'a'};
const b = {val:'b'};
const c = {val:'c'};
const d = {val:'d'};
// 连接起来
a.next = b;
b.next = c;
c.next = d;
console.log(a);
debug查看
遍历链表
// 遍历链表
let p = a;
while (p){
console.log(p.val);
p = p.next;
}
插入
示例代码
// 插入
const e = {val: 'e'};
// 修改变量的指向
c.next = e;
e.next = d;
删除
删除的时候,直接修改指向就好,比如删除e
c.next = d
这样链表a就又恢复了。
4 原型链
- 原型链的本质是链表
- 原型链上的借点是各种原型对象,比如Function.prototype,Object.prototype
- 原型链通过 __proto__属性链接各种原型对象
5. 题目-删除链表中的节点
这个题目,虽然不知道上一个对象是什么,但是我们知道下一个是什么,这么说的话,我们就可以把自己变成下一个,然后把下一个给删除掉
代码示例:
var deleteNode = function(node) {
node.val = node.next.val;
node.next = node.next.next;
};
第四模块:课程记录
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦