数据结构
_ong
。
展开
-
图——图的应用之最短路径,拓扑排序、关键路径
最短路径:定义:问题抽象:在有向网中 A 点(源点)到达 B 点(终点)的多条路径中,寻找一条各边权值之和最小的路径,即最短路径。最短路径...原创 2020-02-19 00:57:48 · 2548 阅读 · 0 评论 -
图——图的应用之最小生成树
生成树:所有顶点均由边连接在一起,但不存在回路。举例:这个图可以有很多棵不同的生成树,如: 特点:生成树的顶点个数与图的顶点个数相同生成树是图的极小连通子图,去掉一条边则非连通一个有n个顶点的连通图的生成树有n-1条边在生成树中再加一条边必然形成回路生成树中任意两个顶点间的路径是唯一的含有n个顶点,n-1条边的图不一定是...原创 2020-02-18 20:25:44 · 1901 阅读 · 0 评论 -
图——图的遍历之DFS(深度优先搜索)、BFS(广度优先搜素)
图的遍历是图的基本运算。遍历定义:从已给的连通图中某一顶点出发,沿着一些边访遍图中所有的顶点,且每个顶点仅被访问一次,就叫做图的遍历。遍历实质:找每个顶点的邻接点的过程。由于图的特点是图中可能存在回路,且图的任一顶点都可能与其它顶点相通,所以在访问完某个顶点之后很可能会沿着某些边又回到曾经访问过的顶点 。方法(避免重复访问):设置辅助数组,用来标记每个被访问过的顶点。...原创 2020-02-17 22:02:59 · 541 阅读 · 0 评论 -
图——图的存储结构之邻接矩阵、邻接表,十字链表,邻接多重表
图的逻辑结构:多对多。图的存储结构:图没有顺序存储结构,但可以借助二维数组来表示元素之间的关系数组表示法(邻接矩阵):无向图的邻接矩阵:例:共有5个顶点,所以形成5*5的方阵。举个例子,比如第一行:v1与v1本身之间无边,无邻接关系,所以为0v1与v2之间有边,有邻接关系,所以为1v1与v3之间无边,无邻接关系,所以为0v1与v4之间有边...原创 2020-02-16 09:01:14 · 4190 阅读 · 2 评论 -
图——基本概念和类型定义
图是一种非线性结构。目录图的基本概念:引入定义相关术语:有向图无向图完全图稀疏图稠密图权网邻接关联(依附)顶点的度有向树路径路径长度回路(环)简单路径简单回路(简单环)连通图强连通图子图连通分量强连通分量极小连通子图生成树生成森林图的类型定义:抽象数据类型定义几个重要的操...原创 2020-02-15 17:25:02 · 2886 阅读 · 1 评论 -
树——哈夫曼树的概念及其应用
目录哈夫曼概念引入相关概念举例基本概念特点哈夫曼树的构造算法1.哈夫曼算法举例2.哈夫曼树算法实现:举例实现哈夫曼典型应用—哈夫曼编码思想举例产生的两大问题算法实现文件的编码和解码编码解码哈夫曼概念:引入:由上述对比,为找到效率最高的判别树,引入了哈夫曼树(最优二叉树)的概念。相关概念:...原创 2020-02-13 15:41:26 · 1430 阅读 · 0 评论 -
树——树的结构、遍历以及树和森林,二叉树的相互转化
目录树的存储结构双亲表示法孩子链表特点改进孩子兄弟表示法举例树与二叉树的转换简化树—>二叉树二叉树—>树森林和二叉树的转换森林—>二叉树举例二叉树—>森林举例树和森林的遍历树的遍历(三种方式)森林的遍历(两种方式)先序遍历中序遍历树的存储结构:双亲表示法:就比如说A,B...原创 2020-02-13 15:37:13 · 375 阅读 · 0 评论 -
树——二叉树的遍历、代码实现以及线索二叉树
目录遍历二叉树定义遍历方法遍历算法描述由二叉树得到遍历序列先序遍历二叉树的操作中序遍历二叉树的操作后序遍历二叉树的操作由遍历序列确定二叉树已知先序序列和中序序列求二叉树已知后序序列和中序序列求二叉树遍历的算法实现(递归与非递归)先序遍历算法(递归算法)中序遍历算法(递归算法)中序遍历算法(非递归算法)后序遍历算法(递归算法)...原创 2020-02-13 15:29:25 · 539 阅读 · 0 评论 -
树——二叉树的性质以及存储结构
目录二叉树的性质性质1证明(归纳法)性质2性质3性质4举例证明性质5举例示意图二叉树的存储结构顺序存储结构类型定义缺点链式存储结构二叉链表类型定义三叉链表二叉树的性质:性质1:第 i 层上至少有1个结点。证明(归纳法):性质2:深度为 k 时至少有 k 个结点。性质3:...原创 2020-02-13 15:12:54 · 370 阅读 · 0 评论 -
树——树和二叉树的相关概念
树是一种非线性结构。目录树引入定义树的其他表示方式树的基本术语树结构和线性结构的比较二叉树引入定义特点特别注意二叉树的基本形态两种特殊形式的二叉树满二叉树完全二叉树树和二叉树的抽象类型定义树引入:定义:而子树本身又是一个树,又可以看成是由一个根和其它元素所构成的集合组成的。所以很容易看出来,树的定义是一个递...原创 2020-02-13 14:43:43 · 547 阅读 · 0 评论 -
串、数组、广义表 知识点总结
目录串串的定义相关概念空串与空格串的区别串的类型定义串的存储结构存储密度的计算数组数组特点数组的基本操作数组的抽象数据类型数组基本操作:二维数组二维数组元素位置的计算三维数组三维数组元素位置的计算n维数组元素位置的计算特殊矩阵的压缩存取压缩对象:一些特殊矩阵,如:对称矩阵,对角矩阵,三角矩阵,稀疏矩阵等。对...原创 2020-02-08 22:25:08 · 3138 阅读 · 0 评论 -
BF算法和KMP算法详解
目录串的模式匹配算法:算法目的算法种类<1> BF算法(穷举法)<2>KMP算法BF算法算法的思路具体过程子串位置的计算代码实现时间复杂度KMP算法求解next的方法求next[j+1] 使用next数组来实现过程代码实现next 数组的优化代码实现串的模式匹配算法:算法...原创 2020-02-07 00:01:09 · 6516 阅读 · 0 评论 -
栈和队列的知识点以及代码详解
栈和队列是线性表的子集(是插入和删除位置受限的线性表)。简单点说,栈和队列是限定插入和删除只能在表的“端点”进行的线性表。再简单形象点来说:普通线性表:Insert(L,i,x) //可以插入在表的任意位置(表头,表尾,表中间)1<=i<=n+1Delete(L,i) //可以删除表中的任意元素1<=i<=n特殊线性表:栈:...原创 2020-01-30 13:13:49 · 1796 阅读 · 0 评论 -
学会线性表,一篇就够了
线性表是最常用最典型的线性结构。简易目录:线性表: 逻辑特征 线性表的类型定义 存储结构 顺序存储表示 元素存储位置的计算 顺序表的基本操作实现 顺序表各算法时间复杂度的计算 C++中的参数传递 链式存储表示 ...原创 2020-01-24 16:42:34 · 4107 阅读 · 3 评论 -
理解数据结构——数据结构绪论总结
由于关于数据结构的概念和知识点过于繁乱,所以我今天就将其理了理,然后概括了一下本章我认为较重要的一些。我们都知道计算机主要用于数值计算,而我们的数据结构主要研究非数值计算问题(大多为生活中遇到的问题)。上图就是它们的基本关系,关于其基本概念什么的,在这里就不多说了。其中存储结构又叫做物理结构,其中的顺序结构通常借助C语言中的数组类型来描述,而链式结构是借助C语言中的指针类型来描述的...原创 2020-01-17 04:23:59 · 581 阅读 · 0 评论