路由模拟——路由算法2的实现

原创 2004年05月07日 15:53:00

 

/*

算法说明:本实现的算法为Floyed算法,矩阵matrix(局部变量)存储源结点到其它结点的

          最短路径,而result则存储返回结果——路由表。

 

参数说明:

         _netArray: routNum * routNum的矩阵,网络的拓扑信息

          _valArray: routNum * routNum的矩阵,网络的耗散信息

          result   : routNum * 2的矩阵,路由表-返回

          routNum  : 路由器数量

          index    : 源路由器号

*/

void __declspec(dllexport) ComputeMethods(int **_netArray,int **_valArray

                                                 ,int **&result,int routNum,int index)

{

     //

         int **matrix =0;

         bool bVal = true;

 

         matrix = new int*[routNum];

          for(int i=0;i<routNum;i++)

              matrix[i] = new int[routNum];

 

          for(int i=0;i<routNum;i++)

              for(int j=0;j<routNum;j++)

                  matrix[i][j] = _valArray[i][j];

        

          for(int i=0;i<routNum;i++){

              result[i][0]=-1;

              result[i][1]=-1;

         }

 

          while(true)

         {

              for(int k=0;k<routNum;k++)

                   for(int i=0;i<routNum;i++)

                        for(int j=0;j<routNum;j++)

                       {

                                 if(    matrix[i][j] >=(matrix[i][k] + matrix[k][j]))

                                 {

                                     matrix[i][j] = matrix[i][k] + matrix[k][j];

                                      if(i==index && _netArray[i][k]==1)

                                     {

                                          if(i!=k || k==j){

                                              result[j][0] = j;

                                              result[j][1] = k;

                                          }

                                     }

                                 }//end of if

                       }//end of for

              for(int i=0;i<routNum;i++)

                   bVal = bVal &&(result[i][0]!=-1) && (result[i][1]!=-1);

 

              if(bVal)

                   break;

              else

                   bVal =true;

         }//end of while

 

         delete []matrix;

}

 

java实现基于距离向量算法 路由协议

算法就不多说了,该程序实现的功能:首先你要将网络结构转化成邻接矩阵,每个路由器对应一行,若路由器m与网络n直接相连,则m行n列为1,否则为0 该程序的路由器和网络都从0开始编号 首先创建Table类...
  • sinat_32092165
  • sinat_32092165
  • 2016年11月23日 09:28
  • 2100

rip协议java模拟实现

大二下学期的计算机网络原理课程设计 已同步githuburl:https://github.com/leiflee/ripdemogit:https://github.com/leiflee/ripd...
  • leiflyy
  • leiflyy
  • 2016年07月09日 00:43
  • 3070

计算机网络1-距离矢量路由算法模拟

距离矢量路由算法实验 一、实验要求   网络拓扑图   实验过程描述 1、将上面的网络拓扑图保存待用 例如,可用二维数组保存,数组下标或索引可隐含表示网络节点。数组元素保存网络拓扑图边上的权值 2、...
  • bobo1356
  • bobo1356
  • 2016年06月16日 23:42
  • 1738

THE ONE使用笔记(2)——路由算法顽健性分析

路由算法顽健性分析
  • Bryank
  • Bryank
  • 2016年05月27日 13:01
  • 1094

NS2中无线网络模拟之三(AODV路由分析5)

voidAODV::recvRequest(Packet *p) { struct hdr_ip *ih = HDR_IP(p); struct hdr_aodv_request *rq = HDR_...
  • lwb102063
  • lwb102063
  • 2016年09月30日 10:27
  • 420

NS2中无线网络模拟之三(AODV路由分析3)

NS2下AODV路由协议的数据包缓冲功能的分析与实现: 头文件为: /* Copyright (c) 1997, 1998 Carnegie Mellon University. All Rig...
  • lwb102063
  • lwb102063
  • 2016年09月29日 19:18
  • 546

NS2中无线网络模拟之三(AODV路由分析4)

随着对源代码的跟踪,看AODV是如何发送请求数据包的,源代码如下: void AODV::sendRequest(nsaddr_t dst) { // Allocate a RREQ packet ...
  • lwb102063
  • lwb102063
  • 2016年09月30日 09:48
  • 294

亲测可用的NS2对"1. AODV" "2. DSDV" "3. DSR" 的路由模拟

set a 1 while {$a == 1 } { puts "Enter the Routing Agents in mobile networking" puts "1. AODV"  ...
  • jianghuihong2012
  • jianghuihong2012
  • 2014年06月13日 16:58
  • 1296

NS2中无线网络模拟之三(AODV路由分析)

AODV路由分析: 经过一段时间对NS2模拟器的研究,今天真正进入到了对路由算法源代码的分析过程,这里我来一步一步的来对AODV路由算法来进行分析,是自己的一段学习历程,也希望对其他正在受NS2折磨...
  • lwb102063
  • lwb102063
  • 2016年09月28日 16:18
  • 1202

动态路由算法--图形化界面模拟--java

  • 2011年10月20日 12:27
  • 661KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:路由模拟——路由算法2的实现
举报原因:
原因补充:

(最多只允许输入30个字)