数据结构

一、栈

后进先出的数据结构,用array的push() 和pop() 方法模拟。

二、队列

先进先出的数据结构,用array的shift()和unshift()方法模拟。

三、链表

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

链表和数组的区别

数组:增删非首尾元素时往往需要移动元素。

链表:增删非首尾元素,不需要移动元素,只需要更改next指针即可。

可以用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

四、集合

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

ES6中有集合,名为Set

集合的常用操作:去重、判断某个元素是否在集合中、求交集。

 

五、字典

与集合类似,字典也是一种存储唯一的数据结构,但是他以键值对的形式存储。

ES6中有字典,名为Map

字典的常用操作:键值对的增删改查。

六、树

一种分层数据的抽象模型。

前端工作中常见的树包括:DOM

树、级联选择、树形控件。。。。。

JS中没有树,但是可以用Object和Array构建树。

{、
    type: 'div',
    children: [
      type: 'sapn',
       children: []
   ]     
}     

七、图

图是网络结构的抽象模型,是一组由边连接的节点

图可以表示任何二元关系,比如道路、航班

可以用Object和Array表示

图的表示法: 邻接矩阵、邻接表、关联矩阵。。。

 

 

 

 

用处:

深度优先遍历

广度优先遍历

八、堆

 

 

 

 

 

posted @ 2022-04-30 18:16  LouisVuitt  阅读(30)  评论(0编辑  收藏  举报