1.列表 list 购物清单 有序列表 无序列表
2.栈 stack 洗盘子 后入先出lifo
3.队列 queue 排队办业务 先进先出 fifo
4.链表 linkedlist 链条 节点对象包含存储的数据和next引用,每个节点node都使用一个对象的引用指向它的后继,指向另一个节点的引用叫链。有单向链表和双向链表。
5.字典 dictionary js中的Object 类就是以字典的形式设计的,键值对。
6.散列 HashTable 所有的元素根据该元素对应的键,保存数组特定位置。6个同学转骰子分班,骰子相当于散列函数。散列表基于数组设计,插入、删除、取用快,查找慢。两个键相同的情况称为碰撞,解决碰撞的办法:1让散列表的长度是质数;2开链法,两个键相同保存位置一样,开辟第二数组,第二个数组称为链;3线性探测法,数组开放寻址散列,数组长度大于两倍数据长度时适合用。
7.集合 Set 无序,不允许相同成员存在,交集并集补集
8.二叉树 bst 非线性结构,分层存储 大的放右节点,小的放左节点 没有子节点的节点叫叶子节点,树的层次称为深度 遍历方法有先序根左右,后序左右根 中序左根中。树的遍历:先序、中序、后序、层序。
二叉树、完全二叉树、满二叉树、霍夫曼树(最优二叉树)、蒙特卡洛树。。。
9.图和图的算法 graph 图由边的集合及顶点的集合组成。权指两个顶点的距离,有向图 无向图 深度优先 广度优先
https://zh.visualgo.net