队列 栈 链表 集合 hash表 树 图
1) 队列 先进先出 (排队)
1 | class Queue{ |
2)栈 先进后出 (喝水)
1 | class Stack{ |
3) 链表 ( 单项链表 双向链表 循环链表)
操作数据不需要破坏数据的原有结构
现在实现单向链表
1 | // 描述:整个链表是一个类 每个节点也是一个类 |
Array是一块顺序的内存,增加值的时候内存要移动,链表的话不用改变原本的数据位置
4) 集合 放置不能重复的项
1 | let set = new Set(); |
1 | class Set{ |
5) Map hash表 图
1 | let map = new Map(); |
取的时候通过map.get(‘abc’)可以马上拿到123
特点:性能高,而且它不是索引,可以放字符串,数组的话只能放索引,而且它取值的时候可以通过key直接取出来 ,模拟hash如下:
1 | class Map{ |
6) 二叉树 (二叉查找树)
数据存储方式 小的放左边 大的放右边
树的的遍历 递归 查找
1 | class Node{ // 一个一个的节点 |
红黑树
图 树之间的节点产生关联 邻接表 可以稍微了解下