导图社区 数据结构
关于数据结构的思维导图,算法特性有、输入、输出、有穷性、确定性、可行性,本图分享了线性表、树、图的知识。
这是一篇关于python常用库的思维导图,包含数据处理、 数据可视化、机器学习、 游戏、 网络安全、 调试、 算法、 网络等。
这是一篇关于实变函数的思维导图,包含集合、积分、微分、Lp空间、测度等。有需要的朋友赶紧收藏吧!
这是一篇关于数值分析的思维导图,包含矩阵特征值、 误差分析、非线性方程组求根、 插值、线性方程组数值解等。
社区模板帮助中心,点此进入>>
互联网9大思维
组织架构-单商户商城webAPP 思维导图。
域控上线
python思维导图
css
CSS
计算机操作系统思维导图
计算机组成原理
IMX6UL(A7)
考试学情分析系统
数据结构
基本概念
算法
算法特性
输入
输出
有穷性
确定性
可行性
算法设计要求
正确性
可读性
健壮性
时间效率高和存储量低
时间复杂度
空间复杂度
递归
线性表
存储结构
顺序存储
链式存储
静态链表
由数组描述
单链表
双向链表
循环链表
使用定长数组存储时为了区分空和满的情况一般要求队尾指针不能有元素(因此表长一定小于数组长度)
头指针
操作
插入
查找
静态查找表
二分查找
散列表(Hash表)
散列函数构造
数字分析法
平方取中法
除留余数法
折叠法
随机数法
冲突处理
开放地址法
再散列函数法
链地址法
公共溢出法
动态查找表
性能分析
索引
稠密索引
分块索引
倒排索引
排序
基本排序
冒泡排序
插入排序
选择排序
改进排序
快速排序
时间复杂度前的系数比堆排序小
希尔排序
堆排序
大/小顶堆
归并排序
桶排序
计数排序
应用
多项式运算
栈
表达式求值
前缀表达式
后缀表示式
计算
遇到数字入栈
遇到运算符将栈顶两个元素运算的结果入栈
中缀转后缀
遇到数字输出
遇到运算符
优先级比栈顶高则入栈
括号优先级最低
否则输出
遇到左括号入栈
遇到右括号依次出栈,直到一个左括号出栈
队列
串
模式匹配
朴素模式匹配
KMP模式匹配
next数组
整体匹配
树
双亲表示法
孩子表示法
孩子兄弟表示法
分类
满二叉树
所有分支节点存在左右子树
完全二叉树
节点按层序编号与满二叉树相同
二叉树
普通树转为二叉树
采用孩子兄弟表示法
孩子节点在左
第一个兄弟节点在外
森林转为二叉树
添加共同的虚拟根节点转为普通树再转为二叉树
遍历
前序中序遍历或中序后序遍历能确定一颗树(但前序后序不行)
二叉树遍历
先序
先访问根节点再遍历左右子树
中序
先遍历左子树,再访问根节点,最后遍历右子树
后序
先遍历左右子树,再访问根节点
层序
树遍历
先根遍历
二叉树表示下可使用前序遍历
后根遍历
二叉树表示下可使用中序遍历
森林遍历
最优二叉树(Huffman树)
所有的带权路径和最小
路径长度
根节点到给定节点经过的节点数(=层数-1)
带权路径长度
节点的权和路径长度相乘
节点按权值从小到大排序
取最小的两个节点作为新节点的子节点,新节点的权值为两个节点权值之和
将新节点加入,重复上述过程,直到只剩一个节点
Huffman编码
需要保证任一字符编码都不是另一字符编码前缀
将字符出现频率作为权值构造Huffman树
编码为从根节点到叶子所经过路径分支的0和1(左和右)序列
二叉排序树
定义
若左子树不空则左子树上所有节点的的值均小于根节点的值
若右子树不空则右子树上所有节点的的值均大于根节点的值
左右子树也为二叉排序树
平衡二叉树(AVL树)
每一个节点的左子树和右子树高度差小于等于1的二叉排序树
平衡因子
左子树高度减右子树高度
只能为1,0,-1
旋转
选取最小不平衡子树(离插入节点最近且平衡因子绝对值大于1)
多路查找树(B树)
红黑树
图
邻接矩阵
邻接表
十字链表
邻接多重表
边集数组
广度优先
深度优先
最小生成树
Prim算法
Kruskal算法
最短路径
Dijkstra算法
Floyd算法
有向无环图(DAG)
拓扑排序
AOV网
关键路径
AOE网