⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 router_calc.c

📁 根据一个有权的无向图生成指定结点(路由器)的路由表设有结点N
💻 C
字号:
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#define T 10

int i;
int shutu[T][T], W[T], s[T], luyou[T];

int Tu()
{  int m, n, l;
    FILE *fp;
   for (m=0; m<10; m++)
   {  for (n=0; n<=9; n++)
	  shutu[m][n]=0;}
	  for (m=0; m<=9; m++)
	{   luyou[m]=11;
	W[m]=10000;
	s[m]=0;}
	fp=fopen("calc.in","r");
	fscanf(fp,"%d",&i);
	while (feof(fp)==0)
{   fscanf(fp,"%d,%d,%d",&m,&n,&l);
	shutu[m][n]=l;
	shutu[n][m]=l;}
	fclose(fp);}

int Biao()
{  int m, s;
	FILE *fp;
fp=fopen("calc.out","w");
for (m=0; m<=9; m++)
if (m!=i&&luyou[m]!=11)
{  fprintf(fp,"%d,",m);
    s=m;
while (luyou[s]!=i) s=luyou[s];
fprintf(fp,"%d\n",s);  
}
}
   main()
{  int m, n, max, u, q;
   Tu();
  W[i]=0;
   for (m=1; m<=9;m++)
{   max=10000;
    for (n=0; n<=9; n++)
    if (s[n]==0&&W[n]<max)
{    max=W[n];
      u=n;  }
     s[u]=1;
     for (n=0; n<=9;n++)
     if (s[n]==0&&shutu[u][n]>0)
{     q=W[u]+shutu[u][n];
      if (q<W[n])
{   W[n]=q; luyou[n]=u;
  }
   }
getch();
     }
  Biao();
	return 0;
}




⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -