数据结构学习笔记
huxxyyy
这个作者很懒,什么都没留下…
展开
-
数据结构之二叉树的应用——二叉平衡查找树
二叉查找树和二叉平衡查找树一.二叉查找树1.数据类型定义:typedef int InfoType;typedef int KeyType; // 假定关键字类型为整数typedef struct node // 结点类型{ KeyType key; // 关键字项 InfoType otherinfo; // 其它数据域,InfoType视应用情况而定 下面 // 不处理它 struct node *lchild,*rchild原创 2020-09-09 11:11:39 · 535 阅读 · 0 评论 -
数据结构之二叉树——二叉树的遍历
二叉树的遍历——四种遍历方式:一、先序遍历(PreOrderTraverse)按照 根—左—右 的顺序进行的遍历算法实现如下:void Visit(BTNode * node){ // 访问某结点,这里仅输出结点中的字符 printf(“%c ”, node->data);}void PreOrderTraverse(BTNode * root) // 先序遍历{ // 若root非空,则先访问root,再按照先序遍历方式访问其左子树 // 和右子树 if ( root-&原创 2020-09-07 13:08:13 · 504 阅读 · 0 评论 -
数据结构之树和二叉树——树的存储结构和二叉树的构造
一、树的存储结构1.顺序存储typedef int datatype;typedef struct node{ datatype data; //结点的数据 int parent; //存储其双亲结点下标}Pnode;2.链式存储(1)孩子表示法 :如图:假设一棵树的度为3,那么其存储结构可以表示为:typedef char datatype;typedef struct node{ datatype data; struct node *lchild; struct原创 2020-09-07 12:12:57 · 596 阅读 · 0 评论 -
数据结构之图论算法(五)——关键路径(Dijkstra算法与Floyd算法)
最短路径1.最短路径问题一般是求带权有向图G = (V,E)中的一个或多个点到G中其他各个点的最短路径。源点:路径上的第一个顶点终点:最后一个顶点求解方法:单源点最短路径——迪杰斯特拉(Dijkstra)算法多源点最短路径——佛洛伊德(Floyd)算法2.Dijkstra算法——从一个指定给源点到图上其余各点的最短路径【思路】按路径长度递增的次序产生最短路径引进一个辅助向量D,每个分量D[i]表示当前所找到的起始点v到每个终点vi的最短路径的长度。(类比于最小生成树中的c原创 2020-08-29 16:06:07 · 1808 阅读 · 0 评论 -
数据结构之图论算法(四)—— 拓扑算法
一、有向无环图(DAG图):无环的有向图应用示例1:描述含公共子式的表达式的工具——实现对相同子式的共享,从而节省存储空间;应用示例2:描述工程项目或系统过程的工具工程可分为若干个成为活动的子工程;子工程间存在一定约束,如某些子工程的开始必须在另一些子工程完成之后主要关心的问题1.工程是否能顺利进行;2.整个工程完成所必须的最短时间。二、AOV网和拓扑排序AOV网:结点为活动,弧的指向表示活动执行的次序AOE网:结点为事件,弧表示活动,权表示活动持续时间AOV网所代原创 2020-08-26 00:59:03 · 5478 阅读 · 1 评论 -
数据结构之图论算法(三)——构造图的最小生成树
构造图的最小生成树生成树:通过对无向图的生成树进行深度遍历和广度遍历后,我们发现它都遵循一个性质:MST性质:设N =(V,E)是一个连通网,U是原创 2020-08-25 10:53:43 · 2061 阅读 · 0 评论 -
数据结构之图论算法(一)图的存储结构及其构建算法
数据结构之图论算法(一)图的存储结构构成图的基本要素:顶点+边(弧)邻接矩阵存储结构(数组表示法)总:图(二维数组) = 顶点(顶点表) + 边(邻接矩阵,即二维数组本身)设图为:A = (V,E),则上面是无向图的情况。其邻接矩阵是对称的。而有向图的邻接矩阵中,将列看为“出”,行看为“入”, 所以列上的顶点出,行上的顶点入,满足的才是1。因此,有向图不一定对称。有向网络的邻接矩阵也是同理:代码表示:#define INFINITY INT_MAX //最大值,表示无穷大#def原创 2020-08-11 18:56:24 · 1766 阅读 · 0 评论