《云南大学 软件学院 计网实验8》由会员分享,可在线阅读,更多相关《云南大学 软件学院 计网实验8(5页珍藏版)》请在金锄头文库上搜索。
1、 云南大学软件学院实 验 报 告课程: 计算机网络原理实验 任课教师: 姓名: 学号: 专业: 成绩: 实验八、Link States Algorithm 的实现1实验目的:通过编程模拟实现 LSA.2实验环境:VS.net 软件开发平台,可以使用任何编程语言。3实验要求(1)求网络中任何两个结点之间的最短路径(网络中至少有 4 个节点) 。(2)得到任何一个节点上的转发表。4.实验内容、拓扑结构ABECD7181 22通过链路状态算法计算 A 点到其它各点的 cost,最终输出 A 的路由表。# include # include # define maxlen 10# define lar
2、ge 999 /(该处设置路径最大值,表示不存在该路线)typedef structint vexnum;char vexsmaxlen;int arcsmaxlenmaxlen;graph;void init_graph(graph *g)/初始化图int i = 0,j = 0; g - vexnum = 5; /根据题目此处将图的节点数初始化为5个for(i = 0; i arcsij = 999;g - arcs01 = 7; g - arcs10 = 7; /将相邻两个节点的路径初始化为其权值g - arcs04 = 1; g - arcs40 = 1;g - arcs12 = 1;
3、 g - arcs21 = 1;g - arcs23 = 2; g - arcs32 = 2;g - arcs14 = 8; g - arcs41 = 8;g - arcs34 = 2; g - arcs43 = 2;g - vexs0 = A; /将节点值初始化g - vexs1 = B;g - vexs2 = C;g - vexs3 = D;g - vexs4 = E;void shortpath_dijkstra(graph g)/寻找最短路径int costmaxlenmaxlen; /costij: 节点i到节点j的成本int distmaxlen; /disti: 源节点到i节点的
4、距离或者是成本 int pathmaxlen; /已经经过了的节点int smaxlen; /如果 si = 1,那么i节点已经纳入最短路径集合 int i,j,v0,min,u;char e;printf(Input the source point(AorBorCorDorE):);/用户输入源节点scanf(%c,&e);switch(e)case A:v0=0;break;case B:v0=1;break;case C:v0=2;break;case D:v0=3;break;case E:v0=4;break; for(i = 0; i 0) pathi = v0;si = 0;s
5、v0 = 1;for(i = 0; i E-D-C-B 最小成本为:6 AC: A-E-D-C 最小成本为:5AD: A-E-D 最小成本为:3 AE: A-E 最小成本为:1BD:B-C-D 最小成本为:3 BC:B-C 最小成本为 1BE:B-C-D-E 最小成本为:5 CD:C-D 最小成本为:2CE:C-D-E 最小成本为:4 DE:D-E 最小成本为:2(如果是源节点与目的节点反过来则路反过来即可)各个节点的转发表: A:B:C:D:E:目的地 链路B (A,E)C (A,E)D (A,E)E (A,E)目的地 链路A (B,C)C (B,C)D (B,C)E (B,D)目的地 链路A (C,D)B (C,B)D (C,D)E (C,D)目的地 链路A (D,E)B (D,C)C (D,C)E (D,E)目的地 链路A (E,E)B (E,D)C (E,D)D (E,D)