计算机网络距离矢量路由算法实验报告文档格式.docx
- 文档编号:6968894
- 上传时间:2023-05-07
- 格式:DOCX
- 页数:14
- 大小:156.53KB
计算机网络距离矢量路由算法实验报告文档格式.docx
《计算机网络距离矢量路由算法实验报告文档格式.docx》由会员分享,可在线阅读,更多相关《计算机网络距离矢量路由算法实验报告文档格式.docx(14页珍藏版)》请在冰点文库上搜索。
a.x[0][0]=0;
//结点0到结点0的距离为0
a.y[0]=0;
//a结点(即0结点)到0结点路径上第一个结点为0
a.x[0][1]=2;
a.y[1]=1;
a.x[0][2]=1000;
//如果没有直接路径则定义为1000便是无穷远
a.x[0][3]=1000;
a.x[0][4]=1000;
a.x[0][5]=1000;
a.x[0][6]=6;
a.y[6]=6;
a.x[0][7]=1000;
Jiedianb=newJiedian();
b.x[1][0]=2;
b.y[0]=0;
b.x[1][1]=0;
b.y[1]=1;
b.x[1][2]=7;
b.y[2]=2;
b.x[1][3]=1000;
b.x[1][4]=2;
b.y[4]=4;
b.x[1][5]=1000;
b.x[1][6]=1000;
b.x[1][7]=1000;
Jiedianc=newJiedian();
c.x[2][0]=1000;
c.x[2][1]=7;
c.y[1]=1;
c.x[2][2]=0;
c.y[2]=2;
c.x[2][3]=3;
c.y[3]=3;
c.x[2][4]=1000;
c.x[2][5]=3;
c.y[5]=5;
c.x[2][6]=1000;
c.x[2][7]=1000;
Jiediand=newJiedian();
d.x[3][0]=1000;
d.x[3][1]=1000;
d.x[3][2]=3;
d.y[2]=2;
d.x[3][3]=0;
d.y[3]=3;
d.x[3][4]=1000;
d.x[3][5]=1000;
d.x[3][6]=1000;
d.x[3][7]=2;
d.y[7]=7;
Jiediane=newJiedian();
e.x[4][0]=1000;
e.x[4][1]=2;
e.y[1]=1;
e.x[4][2]=1000;
e.x[4][3]=1000;
e.x[4][4]=0;
e.y[4]=4;
e.x[4][5]=2;
e.y[5]=5;
e.x[4][6]=1;
e.y[6]=6;
e.x[4][7]=1000;
Jiedianf=newJiedian();
f.x[5][0]=1000;
f.x[5][1]=1000;
f.x[5][2]=3;
f.y[2]=2;
f.x[5][3]=1000;
f.x[5][4]=2;
f.y[4]=4;
f.x[5][5]=0;
f.y[5]=5;
f.x[5][6]=1000;
f.x[5][7]=2;
f.y[7]=7;
Jiediang=newJiedian();
g.x[6][0]=6;
g.y[0]=0;
g.x[6][1]=1000;
g.x[6][2]=1000;
g.x[6][3]=1000;
g.x[6][4]=1;
g.y[4]=4;
g.x[6][5]=1000;
g.x[6][6]=0;
g.y[6]=6;
g.x[6][7]=4;
g.y[7]=7;
Jiedianh=newJiedian();
h.x[7][0]=1000;
h.x[7][1]=1000;
h.x[7][2]=1000;
h.x[7][3]=2;
h.y[3]=3;
h.x[7][4]=1000;
h.x[7][5]=2;
h.y[5]=5;
h.x[7][6]=4;
h.y[6]=6;
h.x[7][7]=0;
h.y[7]=7;
intm[][]=newint[8][8];
//暂时存放各节点新表
intn[][]=newint[8][8];
//暂时存放各结点到其他节点的路径上的第一个途经结点
intk=0;
do{
k=0;
//for(intj=0;
j<
6;
j++){
for(inti=0;
i<
8;
i++){
m[0][i]=a.x[0][i];
m[1][i]=b.x[1][i];
m[2][i]=c.x[2][i];
m[3][i]=d.x[3][i];
m[4][i]=e.x[4][i];
m[5][i]=f.x[5][i];
m[6][i]=g.x[6][i];
m[7][i]=h.x[7][i];
n[0][i]=a.y[i];
n[1][i]=b.y[i];
n[2][i]=c.y[i];
n[3][i]=d.y[i];
n[4][i]=e.y[i];
n[5][i]=f.y[i];
n[6][i]=g.y[i];
n[7][i]=h.y[i];
}
i++)//将a的邻居结点的表传给a
if(m[0][i]>
(a.x[0][1]+b.x[1][i])){//结点b
m[0][i]=a.x[0][1]+b.x[1][i];
n[0][i]=1;
k=1;
//标记。
如果标有变动则k=1
}
i++)
(a.x[0][6]+g.x[6][i])){//结点g
m[0][i]=a.x[0][6]+g.x[6][i];
n[0][i]=6;
i++)//将b结点的邻居节点的表传给b
if(m[1][i]>
(b.x[1][2]+c.x[2][i])){//结点c
m[1][i]=b.x[1][2]+c.x[2][i];
n[1][i]=2;
(b.x[1][0]+a.x[0][i])){//结点a
m[1][i]=b.x[1][0]+a.x[0][i];
n[1][i]=0;
(b.x[1][4]+e.x[4][i])){//结点e
m[1][i]=b.x[1][4]+e.x[4][i];
n[1][i]=4;
i++)//将c的邻居结点的表传给c
if(m[2][i]>
(c.x[2][1]+b.x[1][i])){//结点b
m[2][i]=c.x[2][1]+b.x[1][i];
n[2][i]=1;
(c.x[2][3]+d.x[3][i])){//结点d
m[2][i]=c.x[2][3]+d.x[3][i];
n[2][i]=3;
(c.x[2][5]+f.x[5][i])){//结点f
m[2][i]=c.x[2][5]+f.x[5][i];
n[2][i]=5;
i++)//将d的邻居结点的表传给d
if(m[3][i]>
(d.x[3][2]+c.x[2][i])){//结点c
m[3][i]=d.x[3][2]+c.x[2][i];
n[3][i]=2;
(d.x[3][7]+h.x[7][i])){//结点h
m[3][i]=d.x[3][7]+h.x[7][i];
n[3][i]=7;
k=1;
i++)//将e的邻居结点的表传给e
if(m[4][i]>
(e.x[4][1]+b.x[1][i])){//结点b
m[4][i]=e.x[4][1]+b.x[1][i];
n[4][i]=1;
(e.x[4][5]+f.x[5][i])){//结点f
m[4][i]=e.x[4][5]+f.x[5][i];
n[4][i]=5;
(e.x[4][6]+g.x[6][i])){//结点g
m[4][i]=e.x[4][6]+g.x[6][i];
n[4][i]=6;
i++)//将f的邻居结点的表传给f
if(m[5][i]>
(f.x[5][2]+c.x[2][i])){//结点c
m[5][i]=f.x[5][2]+c.x[2][i];
n[5][i]=2;
(f.x[5][4]+e.x[4][i])){//结点e
m[5][i]=f.x[5][4]+e.x[4][i];
n[5][i]=4;
(f.x[5][7]+h.x[7][i])){//结点f
m[5][i]=f.x[5][7]+h.x[7][i];
n[5][i]=7;
i++)//将g的邻居结点的表传给g
if(m[6][i]>
(g.x[6][0]+a.x[0][i])){//结点a
m[6][i]=g.x[6][0]+a.x[0][i];
n[6][i]=0;
(g.x[6][4]+e.x[4][i])){//结点e
m[6][i]=g.x[6][4]+e.x[4][i];
n[6][i]=4;
(g.x[6][7]+h.x[7][i])){//结点h
m[6][i]=g.x[6][7]+h.x[7][i];
n[6][i]=7;
if(m[7][i]>
(h.x[7][3]+d.x[3][i])){//结点d
m[7][i]=h.x[7][3]+d.x[3][i];
n[7][i]=3;
(h.x[7][5]+f.x[5][i])){//结点d
m[7][i]=h.x[7][5]+f.x[5][i];
n[7][i]=5;
(h.x[7][6]+g.x[6][i])){//结点d
m[7][i]=h.x[7][6]+g.x[6][i];
n[7][i]=6;
a.x[0][i]=m[0][i];
b.x[1][i]=m[1][i];
c.x[2][i]=m[2][i];
d.x[3][i]=m[3][i];
e.x[4][i]=m[4][i];
f.x[5][i]=m[5][i];
g.x[6][i]=m[6][i];
h.x[7][i]=m[7][i];
a.y[i]=n[0][i];
b.y[i]=n[1][i];
c.y[i]=n[2][i];
d.y[i]=n[3][i];
e.y[i]=n[4][i];
f.y[i]=n[5][i];
g.y[i]=n[6][i];
h.y[i]=n[7][i];
System.out.println("
a的路由表为:
"
);
System.out.println("
到"
+i+"
结点的距离:
"
+a.x[0][i]);
途经"
+a.y[i]);
b的路由表为:
+b.x[1][i]);
+b.y[i]);
c的路由表为:
+c.x[2][i]);
+c.y[i]);
d的路由表为:
+d.x[3][i]);
+d.y[i]);
e的路由表为:
+e.x[4][i]);
+e.y[i]);
f的路由表为:
+f.x[5][i]);
+f.y[i]);
g的路由表为:
+g.x[6][i]);
+g.y[i]);
h的路由表为:
+h.x[7][i]);
+h.y[i]);
一遍结束!
!
}while(k==1);
//}
}
五,测试结果:
一,实验感悟:
通过本次的距离矢量路由算法是我更深刻的理解了这一算法的运行过程以及细节,也是自己对于网络上的算法编程有了初步的认识与了解,关键是要静下心来自习的想,越是急躁越是容易把问题复杂化而没有思路。
总之,通过这次试验我收获很多,不仅增加了对于网络路由算法的理解更激发了自己对于计算机网络这门课和对于网络编程的兴趣。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机网络 距离 矢量 路由 算法 实验 报告