云南大学软件学院计算机网络原理实验七Word文档下载推荐.docx

上传人:b****1 文档编号:5562077 上传时间:2023-05-05 格式:DOCX 页数:13 大小:50.05KB
下载 相关 举报
云南大学软件学院计算机网络原理实验七Word文档下载推荐.docx_第1页
第1页 / 共13页
云南大学软件学院计算机网络原理实验七Word文档下载推荐.docx_第2页
第2页 / 共13页
云南大学软件学院计算机网络原理实验七Word文档下载推荐.docx_第3页
第3页 / 共13页
云南大学软件学院计算机网络原理实验七Word文档下载推荐.docx_第4页
第4页 / 共13页
云南大学软件学院计算机网络原理实验七Word文档下载推荐.docx_第5页
第5页 / 共13页
云南大学软件学院计算机网络原理实验七Word文档下载推荐.docx_第6页
第6页 / 共13页
云南大学软件学院计算机网络原理实验七Word文档下载推荐.docx_第7页
第7页 / 共13页
云南大学软件学院计算机网络原理实验七Word文档下载推荐.docx_第8页
第8页 / 共13页
云南大学软件学院计算机网络原理实验七Word文档下载推荐.docx_第9页
第9页 / 共13页
云南大学软件学院计算机网络原理实验七Word文档下载推荐.docx_第10页
第10页 / 共13页
云南大学软件学院计算机网络原理实验七Word文档下载推荐.docx_第11页
第11页 / 共13页
云南大学软件学院计算机网络原理实验七Word文档下载推荐.docx_第12页
第12页 / 共13页
云南大学软件学院计算机网络原理实验七Word文档下载推荐.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

云南大学软件学院计算机网络原理实验七Word文档下载推荐.docx

《云南大学软件学院计算机网络原理实验七Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《云南大学软件学院计算机网络原理实验七Word文档下载推荐.docx(13页珍藏版)》请在冰点文库上搜索。

云南大学软件学院计算机网络原理实验七Word文档下载推荐.docx

Dijkstra算法,其主要思想是计算从某节点(源节点,u)

到网络中所有其他节点的最短路径。

其算法是迭代算法,即经算法的第k次迭代后,可知道到k个目的节点的最低费用路径,在在到所有目的节点的最低费用路径之中,这

k条路径具有k个最低费用。

(2)通过图表算出任何两个节点之间的最短路径,并给出每个节点上的转发表。

截图:

5303

oO

「一O3HoU

nW-*cuw—•"

―I11

■ifiJlD;

\llD€\codebllock\c++■codV'

.Pijksrra-exe请输入节点卜敌t6

请输入起始节点*B

日标节点:

A最低费川路径足:

B——>

A

晟低様用:

2

目标*点:

C晟低费用路径绘:

|b—>

c

最低费用:

3亠__

LI标廿点:

D就低费川路栓足:

B—>

D

显低费用:

2

U标廿点:

E显低费川路栓足:

B—-〉D>

E显低费用:

3叶科科armnininhmrrK*

F嚴低费用路於足:

B——〉[)—>

e——>

F最低费用:

5*杠卄科科杆和是否缔续:

y:

是n:

粉输入起始"

点:

FI标节点:

很低费用略徒足:

D—>

叫0玄出Ll—-忖标节点:

B

跟低费用路径足:

最低费用:

!

1沙心:

C

最低费川路砒:

D—>

E~>

銀低费用:

******車*車*車***拿卓拿*車**

H标筋点:

E

谥低费用粘松是:

卜一>

限低费用:

H标节点:

F掖低汲用略能绘:

E——>

F限低费用:

3蘇蕊厂;

辽二:

■^ISD:

\IDE\codeblock\c++code\Dijkstra.exe

诒输入起的节点:

忖标节点:

A加低费用坷怆绘:

E—>

D~>

Aid低费用:

************宰*****客**

冃标节点:

B最低费用路径是:

£

一>

B扱低费川:

3

****#*4:

代**粒软*宜**4***

『I标”点:

记低费用略检足:

區低费用:

1

****斗**材林*木********

n标霸点:

d

區低费用路径建:

D阴低巧田订

I」标卩点:

F彊低费用路伦址:

F區低费用:

iff输人起始节点:

F

II标卄点:

A最祗瀬用路径忌FE—'

DA

尿低哉用:

4

**»

**+*****+*******¥

*

11标节点;

晟低费甬路牲是:

F—E>

BB

5

亡虽曲榄用路径是:

F--->

E-一>

拥低册用:

*********************

H标节点:

n隔低费用跻植是:

F->

E—>

D彊低婕用:

¥

*******¥

******伙松**

II哪*T:

E员低瓒用略植足:

最低瓒用:

甲艸艸艸艸艸艸*寧******

足沔做红:

尸足n:

Pr

ProcesEreturnpd1(0x1)esecutiontime:

1060.536sPressanykeytocontinue.

转发表:

A:

目的地

链路

最低费用

A>

A->

D->

E->

B:

B->

 

C:

C->

D:

E:

F:

F->

源代码:

#include<

iostream>

stdio.h>

usingnamespacestd;

constintMAX=1000;

constintOK=1;

constintFALSE=0;

constintTRUE=1;

voidcreateGraph(int*arcs[],int&

num)

{

cout<

<

"

请依次输入各点的各条路径的cost:

endl<

(如果拓扑图中的顶点没有直接相

连,则输入1000)"

endl;

"

for(inti=0;

i<

num;

i++)

arcs[i]=newint[num];

for(intj=O;

j<

j++)

cin>

>

arcs[i][j];

}

}voidinitRoute(int*R[],intRL[],intvNum){

for(inti=0;

vNum;

RL[i]=MAX;

R[i]=newint[vNum];

for(intj=0;

R[i][j]=-1;

voidupdateRoute(intR1[],intR2[],intdest,intnum)

for(inti=0;

num;

i++)R1[i]=R2[i];

for(intj=0;

if(R1[j]==-1)

R1[j]=dest;

break;

voidDijkstra(int*arcs[],int*R[],intRL[],intvexnum)

chartemp;

intv0;

bool*visit=newbool[vexnum];

cout<

请输入起始节点:

;

cin>

>

temp;

v0=(int)temp-65;

//A的ASCII码是65cout<

endl;

if(v0>

=vexnum)

输入错误,请重新输入"

v0;

else

for(intcnt=0;

cnt<

vexnum;

cnt++)

visit[cnt]=FALSE;

//visit临时存储已经求得的最短路径RL[cnt]=arcs[v0][cnt];

if(RL[cnt]<

MAX)

R[cnt][0]=v0;

R[cnt][1]=cnt;

}RL[v0]=0;

visit[v0]=TRUE;

for(inti=1;

intmin=MAX;

intv=v0;

j++)if(!

visit[j])if(RL[j]<

min)

v=j;

min=RL[j];

visit[v]=TRUE;

for(intk=0;

k<

k++)if(!

visit[k]&

&

(min+arcs[v][k]<

RL[k])){

RL[k]=min+arcs[v][k];

updateRoute(R[k],R[v],k,vexnum);

}visit=NULL;

voidprintRoute(int*R[],intRL[],intvNum)

intq=0;

for(intdest=0;

dest<

dest++)

if(RL[dest]!

=0)

printf("

目标节点:

%c\n"

dest+65);

if(R[dest][0]==-1)

最短路径不存在!

continue;

最低费用路径是:

if(R[dest][j]!

=-1)

{printf("

%c"

R[dest][j]+65);

(R[dest][j]==dest?

\n"

--->

);

break;

RL[dest]<

最低费用

intmain()

intvNum;

请输入节点个数:

while(vNum<

0)

输入个数错误!

请重新输入:

你输入的"

vNum<

个节点将按0--"

vNum-1<

顺序组成的邻接矩阵存储权值"

int**weight=newint*[vNum];

int**shortestRoute=newint*[vNum];

int*routeLen=newint[vNum];

createGraph(weight,vNum);

charisExit='

y'

do

{initRoute(shortestRoute,routeLen,vNum);

Dijkstra(weight,shortestRoute,routeLen,vNum);

printRoute(shortestRoute,routeLen,vNum);

是否继续:

y:

是n:

否"

isExit;

if(isExit=='

n'

)break;

}while(isExit=='

returnOK;

315

011000

10001102

10005100020

谛输入起蛤惜豔A

艮标打点:

人—>

8砒低即用:

********************卓

II杯仃点X

锻住掛用路袴足:

—>

E—>

***冷**#***#*=<

**琲**平**

日輛节■左:

晟低锵用賂枪是:

A——>

显仏抄口:

*****期******木*丰*甘材*

R林节点:

最低桃用略1±

足:

A'

'

D>

说低nnj:

***inif**)|f»

****Hir)tn|!

H标肯点;

尬低费川确悴足:

i、\iC

忑低费用;

**黑辱丰之=g卞捲*窃乂总*哮膽窃***

是朴诜铁:

丫:

是;

口:

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 幼儿教育 > 唐诗宋词

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2