距离向量路由算法实验报告.docx

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
信息安全 _专业 1002_ 班 2012 年 12 月 20 日 姓名吴文珊 学号 _0909102525 一.实验题目 模拟距离向量路由算法的路由表交换过程, 演示每轮交换后路由 表的变化,动态生成网络拓扑图,从初始路由表开始,进行交换路由 表,演示每轮交换后的路由表的变化。 观察和讨论多少轮交换后路由 表稳定。 二.需求分析 本程序用 C编写,完成距离向量路由算法的模拟。 输入的形式与输出值的范围:输入时要求输入节点个数、初始网络拓扑图中边的条数(即:邻居节点的对数) ,节点名称、每条边的弧头、弧尾节点、边权值。名字定义为字符串形式,节点个数、边条数、边权值为整形变量; 输出的形式:输入信息后,程序输出每轮交换之后新的的路 由表 程序所能达到的功能:完成节点信息的输入、随机选取节点交换向量,并更新路由表, 显示经过多少轮交换路由表稳定,并停止交换。 测试数据: 节点个数: 4 边条数 :4 节点名称: a b c d 弧头 弧尾 权值 a b 3 b d 6 c a 2 d a 6 最终距离向量矩阵如下: a b c d a 0 3 2 6 b 3 0 5 6 c 2 5 0 8 d 6 6 8 0 三.概要设计 为了实现上述功能,须定义结构体的抽象数据类型 本程序包含了 个函数: void visit(VertexType ver)// 访问顶点的函数 void input(VertexType ver) // 输入顶点信息的函数 int LocateVex(MGraph G,VertexType u)// 查找顶点 u, 并返回 void CreateDN(MGraph G)// 构造有向网 G GetVex(MGraph G,int v)// 得到图中顶点 V void Display(MGraph G)// 显示路由表 void ShortestPath_Floyd() 文档由风行播放器 / 暴风影音  2014: /  整理 各函数间关系如下: CreateDN()  LocateVex() visit() Main() Display() GetVex() ShortestPath_Floyd() 四.详细设计 实现概要设计中定义的所有的数据类型, 对每个操作给出伪码算 法。对主程序和其他模块也都需要写出伪码算法。 节点类型 struct VertexType//最简单的顶点信息类型 (只有顶点名称 ) { char name[MAX_NAME];// 顶点名称 char routers[MAX_VERTEX_NUM][MAX_NAME];// 定义最短路径中到目的 节点的上一跳 } ; struct MGraph//图的结构 { VertexType vexs[MAX_VERTEX_NUM];// 顶点向量 AdjMatrix arcs;// 邻接矩阵 (二维数组 ) int vexnum,arcnum;//图的当前顶点数和弧数 GraphKind kind; // 图的种类标志 } ; typedef struct //边 (弧 )信息结构 { VRType adj;//顶点关系类型,对带权图,表示权值 } struct VertexType//最简单的顶点信息类型 (只有顶点名称 ) { char name[MAX_NAME];// 顶点名称 char routers[MAX_VERTEX_NUM][MAX_NAME];// 定义最短路径中到目的节点的上一跳 } ; struct MGraph//图的结构 { VertexType vexs[MAX_VERTEX_NUM];// 顶点向量 AdjMatrix arcs;// 邻接矩阵 (二维数组 ) int vexnum,arcnum;//图的当前顶点数和弧数 GraphKind kind; // 图的种类标志 } ; 各功能函数伪码算法 main() { CreateDN(g);//构造有向网 g for(i=0;ig.vexnum;i++) g.arcs[i][i].adj=0;// 顶点到自身距离为 0 Display(g);// 输出有向网 g ShortestPath_Floyd(g,p,d);//求每对顶点的最短路径 return 1; } void CreateDN(MGraph G)// 构造有向网 G { scanf(%d %d,G.vexnum,G.arcnum); for(i=0;iG .vexnum;i++)// 构造顶点向量 input(G.vexs[i]); //输入节点名称 for(i=0;iG .vexnum;i++)// 初始化二维邻接矩阵 for(j=0;jG .vexnum;j++) { G.arcs

文档评论(0)

137****0220 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档