前言:希望自己能用三个月的时间将以下的全部内容充实完成,会不断修改填充进度完成的链接。
10个数据结构:数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie树
10个算法:递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法。
数据结构
广义:一组数据的存储结构,具体有以下。
线性表
包含:数组,链表,栈,队列
链表:单链表,双向链表,循环链表,双向循环链表,静态链表
栈:顺序栈,链式栈
队列:普通队列,双端队列,阻塞队列,并发队列,阻塞并发队列。
散列表
包含:散列函数,冲突解决,动态扩容,位图
冲突解决:链地址法,开放地址法,其他。
树
包含:二叉树,多路查找树,堆,其他。
二叉树:平衡二叉树,二叉查找树,平衡二叉查找树(AVL树、红黑树),完全二叉树,满二叉树。
多路查找树:B树,B+树,2-3树,2-3-4树。
堆:大顶堆,小顶堆,优先级队列,斐波那契堆,二项堆。
其他:树状数组,线段树。
图
包含:存储(邻接矩阵,邻接表),拓扑排序,最短路径,关键路径,最小生成树,二分图,最大流。
算法
广义:操作数据的一组方法,具体有