一 求有向图中强连通分量

一 求有向图中强连通分量

ID:17901609

大小:148.50 KB

页数:6页

时间:2018-09-09

一 求有向图中强连通分量_第1页
一 求有向图中强连通分量_第2页
一 求有向图中强连通分量_第3页
一 求有向图中强连通分量_第4页
一 求有向图中强连通分量_第5页
资源描述:

《一 求有向图中强连通分量》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、一求有向图中强连通分量(1)功能求有向图中强连通分量(2)调用方式先输入顶点个数(2~9),点“确定”后将出现顶点图示,再将每条有向边按起始点、终点输入。每输入一条边起、终点后,按“输入”确认,就可在图形中显示该边。当所有边输入完毕后,点“终了”键结束。将在现有图形上画出(3)算法说明算法步骤如下:1、在二维数组pm中形成图的邻接矩阵。2、利用warshell算法计算图的路径矩阵,并存放在pm中:Fork=1Top'计算pmForj=1TopFori=1TopIfpm(i,k)=1Andpm(k,j)=1Thenpm(i,j)=1En

2、dIfNextiNextjNextk1、计算cm矩阵:Fori=1Top'计算cmForj=1TopIfpm(i,j)=1Andpm(j,i)=1Thencm(i,j)=1EndIfNextjNexti4、依次检查cm各行,(3)程序清单DimansAsStringDimPIAsDoubleDimpm(10,10),cm(10,10),om(10,10),i,j,k,p,a,c,d,n,b(10),s(10,10),x(10),y(10)AsIntegerFunctionarrow(i,j)Line(x(i),y(i))-(x(j),

3、y(j)),QBColor(0)t=Atn((y(i)-y(j))/(x(i)-x(j)))Ifx(j)>x(i)Thent=t+PIEndIfMe.DrawWidth=2Line(x(j),y(j))-(x(j)+40*Cos(t+PI/16),y(j)+40*Sin(t+PI/16)),QBColor(0)Line(x(j),y(j))-(x(j)+40*Cos(t-PI/16),y(j)+40*Sin(t-PI/16)),QBColor(0)Me.DrawWidth=1EndFunctionPrivateSubCommand1_

4、Click()Clsa=0IfNotIsNumeric(Text1.Text)Then'输入顶点个数a=MsgBox("请输入2-9的整数",0)Text1.Text=""Elsep=Int(Text1.Text)Ifp<2Orp>9Thena=MsgBox("顶点个数有误,请从新输入",0)Text1.Text=""EndIfEndIfIfa=0Then'依据顶点个数画图DimraAsIntegerScaleTop=-1100ScaleLeft=-700ScaleHeight=2000ScaleWidth=2000Fori=1Top

5、FillColor=QBColor(0)FillStyle=0x(i)=Cos(2*PI*(i-1)/p)*500y(i)=Sin(2*PI*(i-1)/p)*500Circle(x(i),y(i)),7,QBColor(0)CurrentX=x(i)*1.2CurrentY=y(i)*1.2PrintiNextiEndIfEndSubPrivateSubCommand2_Click()c=0IfNotIsNumeric(Text2.Text)OrNotIsNumeric(Text3.Text)Then'输入边的信息c=MsgBox(

6、"顶点必须为数字,请从新输入",0)Text2.Text=""Text3.Text=""ExitSubElsei=Int(Text2.Text)j=Int(Text3.Text)EndIfIfi<1Ori>pOrj<1Orj>pThen'判断顶点合法c=MsgBox("顶点有误,请从新输入",0)Text2.Text=""Text3.Text=""EndIfIfc=0Then'画边om(i,j)=1a=arrow(i,j)Text2.Text=""Text3.Text=""EndIfEndSubPrivateSubCommand3_C

7、lick()n=0Fori=1Topom(i,i)=1Forj=1Toppm(i,j)=om(i,j)NextjNextiFork=1Top'计算pmForj=1TopFori=1TopIfpm(i,k)=1Andpm(k,j)=1Thenpm(i,j)=1EndIfNextiNextjNextkFori=1Top'计算cmForj=1TopIfpm(i,j)=1Andpm(j,i)=1Thencm(i,j)=1EndIfNextjNextiFori=1Top'计算snIfcm(i,i)=1Thenn=n+1Forj=iTopIfcm

8、(i,j)=1Thenb(n)=b(n)+1s(n,b(n))=jcm(j,j)=0EndIfNextjEndIfNextiFori=1Ton'画出强连通分支Forj=1Tob(i)Fork=1Tob(i)Ifom(s(

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。