
王道数据结构
李小健QH
终于有人告别三月天一路向南方
展开
-
数据结构考纲笔记概览
(一)线性表线性表定义相同类型的n个数据元素的有限序列基本操作CRUD顺序表和链表的特点顺序表:查找快,插入和删除效率低链表:与顺序表相反。顺序线性表//静态分配typedef struct List { ElemType data[50]; int length;} SqList;#define InitSize 50//动态分配typedef struct List { ElemType *data; int length;} SqLi原创 2021-07-31 16:37:26 · 294 阅读 · 0 评论 -
十大排序算法简记
选择排序( Selection )选择排序是最简单的,也是最没有用的,因为它的时间复杂度是 O( n^2 ) ,而且还不稳定。思路:从左到右扫描过去,找出最小的数的下标,跟这一趟的最开始数的下标index 交互位置,后面重复第一趟过程。冒泡排序( Bubble )顾名思义,类似于冒泡的过程,它的时间复杂度是 O( n^2 ) ,稳定思路:从左到右扫描到 index,比较相邻...原创 2019-05-03 16:06:43 · 410 阅读 · 2 评论 -
B树和B+树
B树B树高度B树插入B树删除原创 2021-07-08 16:43:52 · 118 阅读 · 0 评论 -
DAG图与拓扑排序
有向无环图描述表达式表达式转换为树根是*,右子树是((a+b)*(b*(c+d)) + (c+d)*e),左子树是((c+d)*e),以此类推。 2. 有向无环图(DAG)描述表达式合并方法拓扑排序存在回路的图没法拓扑排序拓扑排序算法实现LeetCode 210. Course Schedule II//时间复杂度:O(V+E)class Solution {public: vector<int> greedy(vector&l..原创 2021-07-02 17:06:42 · 658 阅读 · 1 评论 -
图的应用:最小生成树与最短路径
最小生成树(最小代价树)性质 1.最小生成树不是唯一 2. 最小生成树的边的权值之和总是唯一 3. 最小生成树的边数为顶点减1 ( n-1 ) Prim算法Kruskal算法 最短路径广度优先搜索(BFS)//伪代码//求顶点u到其他顶点的最短路径void BFS_MinDistance(Graph g, int u) { for (int i = 0; i < g.vexNum; ++i) { d[i] = ∞..原创 2021-07-01 19:00:16 · 422 阅读 · 0 评论 -
图的广度和深度搜索
来看看理科原创 2021-06-30 16:10:31 · 188 阅读 · 0 评论 -
图的基本操作
Adjacent(G,x,y):判断图G是否存在边<x,y>或(x,y)Neighbors(G,x):列出图G中与结点x邻接的边InsertVertex(G,x):在图G中插入顶点xDeleteVertex(G,x):在图G中删除顶点xAddEdge(G,x,y):若无向边 (x,y) 或者有向边 <x,y> 不存在,则向图G中添加该边RemoveEdge(G,x,y):若无向边 (x,y) 或者有向边 <x,y> 存在,则向.原创 2021-06-29 17:33:02 · 255 阅读 · 0 评论 -
图的存储结构
邻接矩阵法邻接表法十字链表(只用于存储有向图)解决了 邻接矩阵法的空间浪费 和 邻接表法的寻找指向自己的结点 困难问题。邻接多重法(存储无向图)原创 2021-06-29 14:29:49 · 138 阅读 · 0 评论 -
二叉排序树,平衡二叉树和哈夫曼树
二叉排序树二叉排序树查找//递归BiTNode *BST_Search_R(BiTree biTree, ElemType key) { if (biTree == NULL || key == biTree->data) return biTree; if (key < biTree->data) return BST_Search_R(biTree->lChild, key); else return BST_Search_R(biTree-.原创 2021-06-27 13:15:58 · 778 阅读 · 1 评论 -
线索二叉树
线索二叉树结构lChildlTagdatarTagrChildlTag:0左孩子,1前驱rTag:0右孩子,1后继//代码结构typedef struct ThreadNode { ElemType data; ThreadNode *lChild, *rChild; int lTag, rTag;} ThreadNode, *ThreadTree;中序构造线索二叉树按照中序遍历,初始化pre = NULL,pre指向上一个访问的结点.原创 2021-06-26 11:49:20 · 259 阅读 · 0 评论 -
树 和森林
树的存储结构双亲表示法孩子表示法孩子兄弟表示法树和森林的转换树转换为二叉树森林转换为二叉树二叉树转换为树或森林是唯一的树遍历先根遍历树后根遍历树层次遍历树森林的遍历先序遍历森林效果等同于对各个树进行先根遍历后序遍历森林(或者叫中序遍历)效果等同于对各个树进行后根遍历...原创 2021-06-26 11:48:51 · 175 阅读 · 0 评论 -
串:KMP算法
如何确定子串在主串的位置?• 暴力匹配算法//暴力查找子串位置int index(string s, string t) { int i = 0, j = 0; while (i < s.length() && j < t.length()) { if (s[i] == t[j]) { i++; j++; } else { i = i - ( j-1 );原创 2021-06-25 10:08:55 · 127 阅读 · 0 评论