前端数据结构

后进先出,数据结构类似于蜂窝煤,js中可以用数组push()  pop() 来模拟栈

应用场景

  • 十进制转二进制
  • 有效的括号(Leetcode20)
  • 函数执行栈中
var isValid = function(s) {
     let stack=[];
     for(let i=0;i<s.length;i++){
         if(s[i]==="("||s[i]==="["||s[i]==="{"){
             stack.push(s[i])
         }else{
             if(stack[stack.length-1]==="("&&s[i]===")"||
                stack[stack.length-1]==="{"&&s[i]==="}"||
                stack[stack.length-1]==="["&&s[i]==="]"){
                stack.pop() 
             }else{
                 return false;
             }
         }
     }
    return stack.length===0
 }

队列

后进先出,数据结构类似于排队,js中可以用数组push()  shift() 来模拟队列

应用场景

  • 食堂排队
  • js异步中的任务队列
  • 计算最近请求次数leetcode993

前端数据结构

 

 

 链表

多个元素组成的链表,元素存储不连续,用next指针连在一起,js中可以用对象来模拟链表 

应用场景

  • leetcode237删除链表 
  • leetcode206反转链表
  • leetcode2两数相加
  • leetcode83删除排序链表中的重复元素
  • leetcode141环形链表
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
//遍历
let p=a;
while(p){
   console.log(a.val)
   p=p.next       
}
//插入
let e={val:"e"}
b.next=e
e.next=c
//删除
b.next=c

 

 

前端数据结构

上一篇:RabbitMQ简介和安装


下一篇:GraphicsMagick实现云服务商基础图片处理