实验八、Link States Algorithm的实现.doc_第1页
实验八、Link States Algorithm的实现.doc_第2页
实验八、Link States Algorithm的实现.doc_第3页
实验八、Link States Algorithm的实现.doc_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验八、Link States Algorithm的实现序号: 姓名: 学号: 成绩 指导教师 1实验目的:通过编程模拟实现LSA.2实验环境:VS.net软件开发平台,可以使用任何编程语言。3实验要求(1)求网络中任何两个结点之间的最短路径(网络中至少有4个节点)。(2)得到任何一个节点上的转发表。4实验分析,回答下列问题(1)给出LSA算法的主要思想。 邻居节点发现与测试:各节点主动测试所有与之相邻的节点的状态。方法是 周期性的向邻 居节点广播简短的查询报文,通过接收邻居节点的响应报文 来获取与邻居的状态信息。 链路状态信息发布:根据收集到的状态信息,构造一个包含所有邻居列表在 内的分组LS,并通过洪泛法通告给算法作用区域内的所有节点。 路由选择算法:收到LS分组的节点,采用Dijkstra算法,为每个节点选择 最短的路径。(2)通过图表算出任何两个节点之间的最短路径,并给出每个节点上的转发表。代码:#include#include void D(int ,int ,int *,int *,int * );/dijkstra算法void p(int ,int ,int ,int *,int *);/输出结果void main() int i,j,t; int n,v,u; int *MGraph; /矩阵 int *RoutWeight; /最短路径代价 int *Rout; /回溯节点 while(1) printf(结点的个数为: ); scanf(%d,&n); printf(输入邻接矩阵:n); MGraph=(int *)malloc(sizeof(int)*(n+1); /构建动态存储矩阵 for (i = 1; i = n; i+) MGraphi=(int *)malloc(sizeof(int)*(n+1); for (j = 1; j = n; j+) /输入代价矩阵 for (t = 1; t = n; t+) scanf(%d,&MGraphjt); RoutWeight = (int *)malloc(sizeof(int)*n); Rout = (int *)malloc(sizeof(int)*n); printf(你输入的源节点:); scanf(%d,&v); D(n, v, RoutWeight, Rout, MGraph); /调用dijkstra算法for(i = 1; i = n ; i+) if(i!=v) printf(从%d 到%d 的路径距离是%dn,v,i,RoutWeighti); p(n,v,i, RoutWeight, Rout); void D(int n,int v,int *RoutWeight,int *Rout,int *MGraph) int i; int j; int maxint =0;/定义一个最大的数值,作为不相连的两个节点的代价权值 int *s ; /定义具有最短路径的节点子集s s = (int *)malloc(sizeof(int) * n); /初始化最小路径代价和前一跳节点值 for (i = 1; i = n; i+) RoutWeighti = MGraphvi; /初始化V对应的的其余点的权重 si = 0; / 现在该点不属于节点子集 if (RoutWeighti = maxint) /初始化会回溯路径 Routi = 0; else Routi = v; RoutWeightv = 0; sv = 1; for (i = 1; i n; i+) int temp = maxint; int u = v; /加入具有最小代价的邻居节点到s子集 for (j = 1; j = n; j+) if (!sj) & (RoutWeightj temp) u = j; temp = RoutWeightj; su = 1; /计算加入新的节点后,更新路径使得其产生代价最短 for (j = 1; j = n; j+) if (!sj) & (MGraphuj maxint) int newRoutWeight = RoutWeightu + MGraphuj; if (newRoutWeight = 1; j

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论