您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > 透明网桥的自学习算法
#includestdio.hvoidmain(){chararr1[3]={'A','B','C'};chararr2[2]={'D','E'};chararr3[3]={'F','G','H'};inta[][2]={0,0,0,0,0,0,0,0,0,0,0,0};intb[][2]={0,0,0,0,0,0,0,0,0,0,0,0};inti,j,m,n,k1=0,k2=0,t;chars,d,k;while(1){printf(请输入源地址和目的地址:);scanf(%c%c,&s,&d);printf(\n);for(i=0;i3;i++){if(arr1[i]==s)m=1;}for(i=0;i2;i++){if(arr2[i]==s)m=2;}for(i=0;i3;i++){if(arr3[i]==s)m=3;}switch(m){case1:{for(i=0;ik1;i++){if(a[i][0]==s){break;}}if(i==k1){a[k1][0]=s;a[k1][1]=m;k1++;}//没有记录,在网桥数组中插入源地址for(i=0;ik1;i++)//查找网桥数组中是否有目的地址{if(a[i][0]==d){n=a[i][1];break;}}if(i==k1)printf(网桥1中没有目的记录%c,向右转发\n,d);//不含有,转发else{if(m==n){printf(网桥1丢弃\n);t=1;}//含有且在同在网段丢弃elseprintf(不在同一网段,网桥1向右转发\n);//含有不在同一网段转发}if(t!=1)//不在同一网段时{for(i=0;ik1;i++)if(b[i][0]==s){break;}if(i==k1){b[k2][0]=s;b[k2][1]=m;k2++;}//没有记录,在网桥数组中插入源地址for(i=0;ik1;i++)//查找网桥数组中是否有目的地址{if(b[i][0]==d){n=b[i][1];break;}}if(i==k2)printf(网桥2中没有目的记录%c,向右转发\n,d);//不含有,转发else{if(m==n)printf(网桥2丢弃\n);//含有且在同在网段丢弃elseprintf(不在同一网段,网桥2向右转发\n);//含有不在同一网段转发}}break;}case2:{//向左转发for(i=0;ik1;i++)if(a[i][0]==s){break;}if(i==k1){a[k1][0]=s;a[k1][1]=m;k1++;}//没有记录,在网桥数组中插入源地址for(i=0;ik1;i++)//查找网桥数组中是否有目的地址{if(a[i][0]==d){n=a[i][1];break;}}if(i==k1)printf(网桥1中没有目的记录%c,向左转发\n,d);//不含有,转发else{if(m==n)printf(网桥1丢弃\n);//含有且在同在网段丢弃elseprintf(不在同一网段,网桥1向左转发\n);//含有不在同一网段转发}//向右转发for(i=0;ik2;i++)if(b[i][0]==s){break;}if(i==k2){b[k2][0]=s;b[k2][1]=m-1;k2++;}//没有记录,在网桥数组中插入源地址for(i=0;ik2;i++)//查找网桥数组中是否有目的地址{if(b[i][0]==d){n=b[i][1];break;}}if(i==k2)printf(网桥2中没有目的记录%c,向右转发\n,d);//不含有,转发else{if(1==n)printf(网桥2丢弃\n);//含有且在同在网段丢弃elseprintf(不在同一网段,网桥2向右转发\n);//含有不在同一网段转发}break;}case3:{for(i=0;ik2;i++)if(b[i][0]==s){break;}if(i==k2){b[k2][0]=s;b[k2][1]=m-1;k2++;}//没有记录,在网桥数组中插入源地址for(i=0;ik2;i++)//查找网桥数组中是否有目的地址{if(b[i][0]==d){n=b[i][1];break;}}if(i==k2)printf(网桥2中没有目的记录,向左转发\n);//不含有,转发else{if(2==n){printf(网桥2丢弃\n);t=1;}//含有且在同在网段丢弃elseprintf(不在同一网段,网桥2向左转发\n);//含有不在同一网段转发}if(t!=1)//不在同一网段时{for(i=0;ik1;i++)if(a[i][0]==s){break;}if(i==k1){a[k1][0]=s;a[k1][1]=m-1;k1++;}//木有记录,在网桥数组中插入源地址for(i=0;ik1;i++)//查找网桥数组中是否有目的地址{if(a[i][0]==d){n=a[i][1];break;}}if(i==k1)printf(网桥1中没有目的记录%c,向左转发\n,d);//不含有,转发else{if(2==n)printf(网桥1丢弃\n);//含有且在同在网段丢弃elseprintf(不在同一网段,网桥1向左转发\n);//含有不在同一网段转发}}break;}default:;}putchar('\n');printf(网桥1\n);printf(--------\n);for(i=0;ik1;i++){printf(%c,a[i][0]);printf(%d,a[i][1]);putchar('\n');}printf(--------\n);printf(网桥2\n);printf(--------\n);for(i=0;ik2;i++){printf(%c,b[i][0]);printf(%d,b[i][1]);putchar('\n');}printf(-------\n);scanf(%c,&k);}}五、实验步骤及要求(一)对称矩阵1.建立一个n*n的对称矩阵A并初始化矩阵的元素。2.将对称矩阵用一个大小为n*(n+1)/2的一维数组SA存储。3.输出矩阵中任意位置的元素。4.程序调试运行并保存输出结果。5.整理并提交实验报告。(二)三角矩阵1.建立一个n*n的下三角矩阵A并初始化矩阵的元素。2.将下三角矩阵用一个大小为n*(n+1)/2+1的一维数组SA存储。3.输出矩阵中任意位置的元素。4.程序调试运行并保存输出结果。5.整理并提交实验报告。(三)对角矩阵1.建立一个n*n的三对角矩阵A并初始化矩阵的元素。2.将三对角矩阵用一维数组SA存储。3.输出矩阵中任意位置的元素。4.程序调试运行并保存输出结果。5.整理并提交实验报告。
本文标题:透明网桥的自学习算法
链接地址:https://www.777doc.com/doc-1649221 .html