路由模拟——路由算法1的实现(路由基因类)

原创 2004年05月07日 13:22:00

 

//文件routgene.h

#pragma once<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

#include "nodeset.h"

 

class RoutGene

{

public:

     RoutGene(int _nodeNum=0);

     ~RoutGene(void);

public:

     void SetNodeNum(int _nodeNum);

     void Init(int from, int to);

     //gene增加element片段

     void Increase(int element);

     void operator =(RoutGene &gene);

     bool IsMax();

public:

     friend NodeSet & NODE(RoutGene &gene);

     //随即删除gene中的片段

     friend void RANDOMDELETE(RoutGene &gene);

     //打印:测试之用

     friend void Print(RoutGene &gene);

private:

     int nodeNum;

     int last;

     NodeSet geneData;

};

 

//文件routgene.cpp

#include "routgene.h"

#using <mscorlib.dll>

#include "resource.h"

#include <iostream>

using namespace GeneResource;

using namespace std;

 

RoutGene::RoutGene(int _nodeNum)

{

     if(_nodeNum<0)

     {

          cout<<"/nError :the node number < 0 !/n/n";

          exit(-1);

     }

     nodeNum = _nodeNum;

     last = 0;

     geneData.SetNodeNum(nodeNum);

}

 

RoutGene::~RoutGene(void)

{

}

 

void RoutGene::SetNodeNum(int _nodeNum)

{

     if(_nodeNum<=1)

     {

          cout<<"/nError :the node number <= 1 !/n/n";

          exit(-1);

     }

     nodeNum = _nodeNum;

     last = 0;

     geneData.SetNodeNum(nodeNum);

}

 

void RoutGene::Init(int from, int to)

{

     last = 0;

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

          *(geneData.GetpNodeSet()+i) = -1;

 

     *(geneData.GetpNodeSet())=from;

     ++ last;

     *(geneData.GetpNodeSet()+last)=to;

}

 

void RoutGene::Increase(int element)

{//gene增加element片段

     if(last<GENE_LENGTH-1)

     {

          *(geneData.GetpNodeSet()+last+1) = *(geneData.GetpNodeSet()+last);

          *(geneData.GetpNodeSet()+last) = element;

         ++ last;

     }

}

 

void RoutGene::operator =(RoutGene &gene)

{

     nodeNum = gene.nodeNum;

     last = gene.last;

     geneData = gene.geneData;

}

 

bool RoutGene::IsMax()

{

     return last>=GENE_LENGTH-1;

}

 

NodeSet & NODE(RoutGene &gene)

{

     //TODO: return statement

     return gene.geneData;

}

 

void RANDOMDELETE(RoutGene &gene)

{//随机删除gene中的片段

     int randInteger;

     randInteger = RandInteger(gene.last);

     if(gene.last-randInteger >= 1 && randInteger>0 ){

          for(int i=1;i<randInteger;i++)

              *(gene.geneData.GetpNodeSet()+gene.last-i) = -1;

          *(gene.geneData.GetpNodeSet()+gene.last-randInteger) =

              *(gene.geneData.GetpNodeSet()+gene.last);

          *(gene.geneData.GetpNodeSet()+gene.last) = -1;

          gene.last -= randInteger;

     }

}

 

void Print(RoutGene &gene)

{

     cout<<"/n/nGene:/n";

     for(int i=0;i<=gene.last;i++)

          cout<<*(gene.geneData.GetpNodeSet()+i);

     cout<<"/n/n";

}

 

路由模拟——路由算法1的实现(基因集合类)

  //文件geneset.h#pragma once#include "routgene.h" class GeneSet{public:     GeneSet(int _nodeNum,int ...
  • PercyLee
  • PercyLee
  • 2004年05月07日 15:58
  • 1313

距离矢量路由算法实验

计算机网络实验:///Distance Vector routing #include #include #include #include #include #include #include #i...
  • algzjh
  • algzjh
  • 2017年06月01日 08:51
  • 556

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

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

路由选择算法----JAVA版

import java.io.*; import java.util.*; public class RouteDesign { final static int maxnum = 100; ...
  • down_load_111
  • down_load_111
  • 2016年11月09日 23:44
  • 1631

一个用Dijkstra算法实现的路由算法的java程序——4 MapCanvas类

import java.awt.*;/** * 一块实现地图绘制的画布。此画布添加到地图显示窗口中。 * @author Fe */public class MapCanvas extends Can...
  • ffee
  • ffee
  • 2005年11月11日 19:19
  • 1481

php写的一个简单路由控制类

最近写一个项目后台用到php,我对php了解不深,
  • cql342624757
  • cql342624757
  • 2014年04月30日 23:32
  • 2124

编程实现路由算法——迪杰斯特拉算法

路由算法有很多,本篇采用迪杰斯特拉最短路径法实现简单的路由算法。可能很多人一看到这个就会想到数据结构了,想到数据结构中必须要建立图的结构就很头疼,今天这种写法可以先不采用数据结构书上的写法,也可以实现...
  • icodeyou
  • icodeyou
  • 2014年11月27日 16:15
  • 2734

基于原生PHP的路由分配实现

对于由原生PHP写成的独立PHP框架,利用单一入口文件实现路径的访问。这时我们会遇到的首要问题是:文件的相互包含,其次就是路由分配。当我们不利用成熟的PHP框架进行web开发时,我们就会发现上述两个问...
  • helencoder
  • helencoder
  • 2016年07月29日 16:07
  • 8627

Java实现模拟路由功能

本文实现根据路由表适配最优的号段,选择路由器。
  • dotnetstudio
  • dotnetstudio
  • 2015年08月02日 12:53
  • 6558

一个用Dijkstra算法实现的路由算法的java程序——8 GraphMain类

import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.util.Vector;/** * 程序入口所在类...
  • ffee
  • ffee
  • 2005年11月11日 19:33
  • 3834
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:路由模拟——路由算法1的实现(路由基因类)
举报原因:
原因补充:

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