标签:教材 ati 测试 移除 evel new 补全 长度 ali
[x] 完全图(complete graph):含有最多条边的无向图
无向图(undirected graph)
有向图(directed graph)
(Boston ,New York ,120)
、(Boston ,Philadeiphia , 199)等
最小生成树(minimum spanning tree):所含边权值之和小于其他生成树的边的权值之和。
判定最短路径:
① 判定起始顶点和目标顶点之间是否存在最短路径(两个顶点之间边数最少的路径)。
② 在加权图中找到最短路径。(Dijkstra算法)
邻接矩阵:用一种叫邻接矩阵的二维数组来表示任意两个顶点的交接情况。
无向图的邻接矩阵一定是对称的,有向图的邻接矩阵不一定对称。
“拓扑序(topological order):如果有向图中没有环路,且有一条从A到B的边,则可以把顶点A安排到顶点B之前,这种排列得到的顶点次序称为拓扑序。” |
从上可以看出,关键是寻找入度为0的顶点。
一种方式是遍历整个图中的顶点,找出入度为0的顶点,然后标记删除该顶点,更新相关顶点的入度,由于图中有n个顶点,每次找出入度为0的顶点后会更新相关顶点的入度,因此下一次又要重新扫描图中所有的顶点。故时间复杂度为O(n^2)。
1、图中顶点用一个一维数组存储,另外,对于顶点数组中,每个数据元素还需要存储指向第一个邻接点的指针,以便于查找该顶点的边信息。
2、图中每个顶点vi的所有邻接点构成一个线性表,由于邻接点的个数不定,所以用单链表存储,无向图称为顶点vi的边表,有向图称为顶点vi作为弧尾的出边表。
(1) 初始时,S只包含起点s;U包含除s外的其他顶点,且U中顶点的距离为"起点s到该顶点的距离"[例如,U中顶点v的距离为(s,v)的长度,然后s和v不相邻,则v的距离为∞]。
(2) 从U中选出"距离最短的顶点k",并将顶点k加入到S中;同时,从U中移除顶点k。
(3) 更新U中各个顶点到起点s的距离。之所以更新U中顶点的距离,是由于上一步中确定了k是求出最短路径的顶点,从而可以利用k来更新其它顶点的距离;例如,(s,v)的距离可能大于(s,k)+(k,v)的距离。
(4) 重复步骤(2)和(3),直到遍历完所有顶点。
通过理解及其博客里面的代码讲解,就可以明白该算法的奥妙啦。
问题2:在做pp15.1的时候出现了越界的问题。
问题2的解决:正在改正····
问题1的改正:本题应该是错误的,选B。堆是一个完全二叉树而不是一个二叉查找树,太低级的错误了,完全粗心所致。
图这一章很有趣。很多算法实现很新颖,需要好好理解消化。 还有代码实现确实很费时间呀(绕来绕去绕不过来)
正在继续告诉自己,请对专业课更加虔诚一点。
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | |
---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 |
第一周 | 0/0 | 1/1 | 8/8 |
第二周 | 621/621 | 1/2 | 12/20 |
第三周 | 678/1299 | 1/3 | 10/30 |
第四周 | 2734/4033 | 1/4 | 20/50 |
第五周 | 1100/5133 | 1/5 | 20/70 |
第六周 | 1574/6707 | 2/7 | 15/85 |
第七周 | 1803/8510 | 1/8 | 20/105 |
第八周 | 2855/11365 | 2/10 | 25/130 |
第九周 | 2076/13441 | 1/11 | 25/155 |
20172328 2018-2019《Java软件结构与数据结构》第九周学习总结
标签:教材 ati 测试 移除 evel new 补全 长度 ali
原文地址:https://www.cnblogs.com/LXY462283007/p/9956073.html