离散数学上机题目3
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
离散数学第三次上机题目
一、道路矩阵的Warshall算法
A)功能
给定n个结点的简单无向图G的邻接矩阵A,求G的道路矩阵P。
B)算法
(1)将图G的邻接矩阵送入P(n,n)中。
(2)1⇒i。
(3)1⇒j。
(4)对于k=1,2,…,n,作:P jk∨(P ji∧P ik)⇒P jk
(5)j+1⇒j,若j≤n,则转(4)。
(6)i+1⇒i,若i≤n,则转(3),否则结束。
二、判别连通性的算法
A)功能
给定n个结点的有向图的邻接矩阵,可判断该图是否为强连通的,单向连通的,或弱连通的。
B)基本思想
对于给定的邻接矩阵A,我们容易用本章算法6.1给出的道路矩阵的Warshall算法求出A所表示的图的道路矩阵P(或称可达矩阵)。对于道路矩阵P来说,如果P的所有元素均为1,则所给有向图是强连通的;对于P的所有元素P ij来说,均有:P ij+P ji>0,则所给有向图是单向连通的。
当所给有向图既不是强连通的,又不是单向连通的时候,我们改造邻接矩阵为:对于矩阵A中所有的元素a ij,若a ij=1或a ji=1,则1⇒a ij且1⇒a ji。对于这样改造之后所得到的新的矩阵A’(A’相当于原有向图忽略方向之后所得到的无向图的邻接矩阵),再用前面所述的方法进行判断,当P’的所有元素均为1时,原有向图是弱连通图;否则,原有向图是不连通的。
C)算法
(1)输入邻接矩阵A(n,n)。
(2)A(n,n)⇒P(n,n)。
(3)调用求道路矩阵子程序求出道路矩阵P。
(4)调用强连通或单向连通子程序。
(5)若为强连通或单向连通的,则输出其标志,转结束;否则转(6)。
(6)改造A阵为 A’,且A’ ⇒P(n,n)。
(7)调用求道路矩阵子程序。
(8)调用判断连通或单向连通子程序。
(9)若为强连通的,则输出原有向图是弱连通的;否则输出原有向图是非连通的。
(10)结束。
同学们编好程序,任选一个有向图(至少9个节点)练习,并将输出结果写入实验报告。