![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
yuitsu
这个作者很懒,什么都没留下…
展开
-
图的最小生成树、最短路径、拓扑排序、关键路径思路
一、最短路径 1、Dijkstra算法 按路径长度递增次序、从源点到其余各顶点 2、弗洛伊德算法 每个顶点之间的最短路径。矩阵形式,先记录各个顶点之间的权值,再走其他的路不断修正最小值,找到最小路径 二、拓扑排序 1、定义:事情之间有优先关系,一件事发生是另一件事发生的前提,用有向图表示 2、找到拓扑序列的方法:以一个没有入度的顶点作为第一个,输出之后删除这个顶点和它发出的边,再找下一个没有入度的顶点,直到所有顶点都输出。序列不唯一 ......原创 2022-05-05 22:54:27 · 350 阅读 · 0 评论 -
图的遍历(DFS、BFS)
概念:从图的某一顶点出发访问图中的其余顶点,且使每个顶点只被访问一次 1、深度优先遍历(DFS) typedef int Boolean;//布尔类型,值是TRUE或FALSE Boolean visited[MAX]; //邻接矩阵的DFS递归算法 void DFS(MGraph, int i) { int j; visited[i] = TRUE;//该顶点标记为已被访问 printf("%c", G.vexs[i]); for (j = 0; j < G.numVertexes;原创 2022-05-02 17:01:07 · 179 阅读 · 0 评论 -
图的概念、分类和存储
1、概念:G(V,E),G图,V顶点的集合,E边的集合。 数据元素的叫法:线性表中叫元素,树中叫结点,图中叫顶点,其他的可以没有数据元素,图中不能没有原创 2022-04-30 23:07:40 · 355 阅读 · 0 评论 -
线性表的链式存储结构
1、定义:数据域(存数据元素信息)、指针域(存后继结点地址)、合在一起叫结点,每个结点只包含一个指针域所以叫单链表 头指针(第一个结点的存储位置,指向第一个结点的指针)、最后一个结点指针为空(NULL) 、头结点的数据域不存储任何信息/存放链表长度 链表为空也必须有头指针,可以没有头结点 2、结构指针表示单链表 typedef struct Node { ElemType data; //数据域 struct Node* Next; //指针域 }Node; typedef struct No原创 2022-04-23 20:03:44 · 980 阅读 · 0 评论 -
线性表的顺序存储结构
1、线性表顺序存储结构 //线性表的顺序存储结构 #define MAXSIZE 20 typedef int ElemType typedef struct { ElemType data [MAXSIZE]; int length; }Sqlist; 需要三个属性:①存储空间的起始位置,数组data ②最大存储容量 ③线性表当前长度 2、获取元素操作GetElem.c O(1) //用e返回L中第i个元素的值 Status GetElem(SqList L,in...原创 2022-04-23 18:57:55 · 323 阅读 · 0 评论