前端-算法1:栈、队列、链表

一个先进后出的数据结构
JS中没有栈,用Array实现栈的功能
进栈: push 出栈:pop
栈的应用场景:

  1. 十进制转二进制
  2. 判断字符串的括号是否有效

习题:

队列

一个先进后出的数据结构
同样JS中没有队列,用Array实现队列
进队: push 出队:shift
应用场景

  1. JS异步中的任务队列
  2. 计算最近请求
    习题:
    LeetCode:933. 最近的请求次数

链表

多个元素组成的列表
元素存储不连续,用next指针连在一起


E56FD664-5C81-42BF-A280-336ED351BE8A.png

数组VS链表

  • 数组: 增删非首元素时往往需要移动元素
  • 链表: 增删非首元素,不需要移动元素,只需要更改next的指向即可
    JS中的链表
const a = {val : 'a'}
const b = {val : 'b'}
const c = {val : 'c'}
a.next = b;
b.next = c;
c.next = d;

链表的遍历

let p = a;
while (a) {
    p = p.next;
}

链表插入

const e = {val : 'e'};
c.next = e;
e.next = d;

链表的删除

c.next = c.next.next

习题:

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容