zoukankan      html  css  js  c++  java
  • 前端数据结构

    后进先出,数据结构类似于蜂窝煤,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环形链表
    • 前端与链表:js中的原型链,原型链的本质是链表,原型链通过__proto__链接
    • 使用链表指针获取JSON的节点值
    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

     集合

    一种无序且唯一的数据结构Set

    使用方法:new has delete add size 遍历 keys values entries 有迭代器

    应用场景

    • 去重 
    • 判断某元素是否在集合中
    • 求交集
    • leetcode349两个数组的交集
    //去重
    let arr=[1,1,2,3]
    [...new Set(arr)]
    
    //元素在集合中
    let set=new Set(arr)
    set.has(3)
    
    //求交集
    let arr2=[3,4,5]
    let set2=new Set(arr2)
    [...new Set(arr)].filter((item)=>{set2.has(item)})
  • 相关阅读:
    Lightoj 1321 Sending Packets(Bellman-Ford)
    Lightoj 1281 New Traffic System (记忆化Dijkstra)
    NBUT TNT #1 题解报告
    UVA 11624 BFS
    FZU 2150 枚举+BFS
    POJ 3126 BFS
    POJ 3279 DFS
    POJ 1062 dijkstra + 枚举
    lightoj 1123 增量最小生成树
    python 常用算法及解析
  • 原文地址:https://www.cnblogs.com/kangxinzhi/p/14948140.html
Copyright © 2011-2022 走看看