摘要: 1 int Binary_Search(SeqList L, ElemType key){ 2 int low = 0, high = L.length - 1, mid; 3 while(low < high){ 4 mid = (low + high)/2; //取中间位置 5 if(L.ele 阅读全文
posted @ 2021-12-06 20:30 某科学的撒把豆子 阅读(14) 评论(0) 推荐(0)
摘要: 1 //求哈夫曼编码的算法如下所示: 2 // 哈夫曼树和哈夫曼编码的存储表示 3 typedef struct{ 4 unsigned int weight; 5 unsigned int parent,lchild,rchild; 6 }HTNode,*HuffmanTree; 7 typede 阅读全文
posted @ 2021-11-30 16:34 某科学的撒把豆子 阅读(45) 评论(0) 推荐(0)
摘要: 一、算法思想 二、算法如下 1 bool TopologicalOrder(ALGraph G, Stack &T){ 2 //有向网G采用邻接表存储结构,求各顶点时间的最早发生时间ve(全局变量)。 3 //T为拓扑序列顶点栈,S为零入度顶点栈。 4 //若G无回路,则用栈T返回G的一个拓扑序列, 阅读全文
posted @ 2021-11-30 15:16 某科学的撒把豆子 阅读(100) 评论(0) 推荐(0)
摘要: 对一个AOV网进行拓扑排序的算法有很多,下面介绍一种比较常用的一种方法的步骤: 一、算法思想: ①从AOV网中选择一个没有前驱的顶点并输出; ②从网中删除该顶点和所有以它为起点的有向边; ③重复①和②直到当前的AOV网为空或当前网中不存在无前驱的结点为止。后一种情况说明有向图中必然存在环 二、伪代码 阅读全文
posted @ 2021-11-30 14:15 某科学的撒把豆子 阅读(134) 评论(0) 推荐(0)
摘要: 引言: 解决这个问题的一个办法是:每次以一个顶点为源点,重复执行Dijkstra算法n次。这样便可求得每一对顶点之间的最短路径。总的时间复杂度为O(n^3)。 这里要介绍的由弗洛伊德提出的另一个算法。时间复杂度也是O(n^3),但是形式上简单些。 一、算法思想: 主要用来求用四阶方阵表示的图中没两个 阅读全文
posted @ 2021-11-28 18:30 某科学的撒把豆子 阅读(271) 评论(0) 推荐(0)
摘要: 一、算法思想: ①从图中任意取出一个顶点,把它当做一棵树。 ②然后从这棵树相接的边中选取一条最短(权值最小)的边,并将这条边及其所连接的顶点也加入到这棵树中,此时得到了一棵有两个顶点的树。 ③然后从这棵树相接的边中选取一条最短(权值最小)的边,并将这条边及其所连接的顶点也加入到这棵树中,得到一棵有三 阅读全文
posted @ 2021-11-28 17:48 某科学的撒把豆子 阅读(630) 评论(0) 推荐(0)
摘要: 1 //广度优先搜索算法 2 #define MAX_VERTEX_NUM 100 3 bool visited[MAX_VERTEX_NUM]; //访问标记数组 4 5 void BFSTraverse(Graph G){ 6 //本算法用于对图G进行光度优先遍历 7 for(int i = 0 阅读全文
posted @ 2021-11-28 17:18 某科学的撒把豆子 阅读(57) 评论(0) 推荐(0)
摘要: 一、单源最短路径问题——BFS(广度优先搜索)算法: 算法思想: 若图是非带权图,定义从定点v到顶点w的最短路径d(v,w)为从u到v的任何路径的最少的变数; 若u到v没有同路,则d(v,w)为无穷大。 使用BFS,我们可以求解一个满足上述定义的非带权图的单源最短路径问题,这是由广度优先搜索总是按照 阅读全文
posted @ 2021-11-28 17:17 某科学的撒把豆子 阅读(646) 评论(0) 推荐(0)
摘要: 一、算法思想: 设有两个顶点集合S和T,集合S中存放图中已找到最短路径的顶点,集合T存放图中剩余顶点。 ①初始状态时,集合S中只包含源点V0,然后不断从集合T中选取到顶点V0路径长度最短的顶点Vu并入集合S中; ②集合S每并入一个新的顶点Vu,都要修改V0到集合T中的最短路径长度值。 ③不断重复此过 阅读全文
posted @ 2021-11-28 17:12 某科学的撒把豆子 阅读(137) 评论(0) 推荐(0)