简单路由表的数据结构(C语言)应该怎么设计?

要设计一张简单的路由表,数据结构(C语言)应该怎么设计呢?
简单的就好,能用线性表设计吗?

第1个回答  2008-04-22

实现的话可以用矩阵,也可以用邻接表,具体参考严蔚敏《数据结构》和谢西仁《计算机网络》
第2个回答  2008-04-24
最小生成树
#include <stdio.h>
#define M 10
#define MAX 100
void minispantree_PRIM(int ad[][M],int n)
{ int i,j,k,p,q,wm;
q=p=n-1;
ad[q][q]=1;
for(k=0;k<(n-1);k++)
{ wm=MAX;
for(i=0;i<n;i++)
if(ad[i][i]==1)
for(j=0;j<n;j++)
if((ad[j][j]==0)&&(ad[i][j]<wm))
{ wm=ad[i][j];
p=i;
q=j;
}
ad[q][q]=1;
printf("%d %d %d\n",p+1,q+1,ad[p][q]);
if(p>q) ad[p][q]=-ad[p][q];
else ad[q][p]=-ad[q][p];
}
}

void main()
{ int n=6,i,j;
static int ad[][M]={{0 ,6 ,1,5 ,MAX,MAX},
{6 ,0 ,5,MAX,3 ,MAX},
{1 ,5 ,0,5 ,6 ,4},
{5 ,MAX,5,0 ,MAX,2},
{MAX,3 ,6,MAX,0 ,6},
{MAX,MAX,4,2 ,6 ,0}};
minispantree_PRIM(ad,n);
for(i=0;i<n;i++)
{ for(j=0;j<n;j++)
printf("%-6d",ad[i][j]);
printf("\n");
}
}本回答被提问者采纳
相似回答