Advertisement
WarPro

dvr

Nov 24th, 2014
159
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.66 KB | None | 0 0
  1. #include<stdio.h>
  2. void main()
  3. {
  4. int n,i,j,k;
  5. printf("Enter no of nodes in subnet:");
  6. scanf("%d",&n);
  7. int a[n][n];
  8. struct rt
  9. {
  10. int rout[n];
  11. };
  12. for(i=0;i<n;i++)
  13. {
  14. for(j=0;j<n;j++)
  15. {
  16. a[i][j]=0;
  17. }
  18. }
  19. for(i=0;i<n;i++)
  20. {
  21. for(j=0;j<n;j++)
  22. {
  23. if(i==j)
  24. a[i][j]=0;
  25. else
  26. {
  27. if(i>j)
  28. {
  29. a[i][j]=a[j][i];
  30. }
  31. else
  32. {
  33. printf("path from %d to %d:",i,j);
  34. scanf("%d",&a[i][j]);
  35. a[j][i]=a[i][j];
  36. }
  37. }
  38. }
  39. }
  40. int node,adj[n],m=0;
  41. printf("enter the node for which routing table is to be calculated:");
  42. scanf("%d",&node);
  43. for(i=0;i<n;i++)
  44. {
  45. if(a[node][i]!=0)
  46. {
  47. adj[m++]=i;
  48. }
  49. }
  50. struct rt tables[m];
  51. for(i=0;i<m;i++)
  52. {
  53. for(j=0;j<n;j++)
  54. {
  55. printf("enter the delay to go from %d to %d:",j,adj[i]);
  56. scanf("%d",&tables[i].rout[j]);
  57. }
  58. }
  59. int delays[m];
  60. for(i=0;i<m;i++)
  61. {
  62. printf("enter the delay from %d to %d:",node,adj[i]);
  63. scanf("%d",&delays[i]);
  64. }
  65. int rrtable[n][2];
  66. for(i=0;i<n;i++)
  67. {
  68. int min=5000,temp=0,in;
  69. if(i==node)
  70. {
  71. rrtable[i][0]=0;
  72. rrtable[i][1]=-1;
  73. }
  74. else
  75. {
  76. for(k=0;k<m;k++)
  77. {
  78. temp=tables[k].rout[i]+delays[k];
  79. if(temp<min)
  80. {
  81. min=temp;
  82. in=adj[k];
  83. }
  84. }
  85. rrtable[i][0]=min;
  86. rrtable[i][1]=in;
  87. }
  88. }
  89. printf("TO\tnode%d\tintermediate router\n",node);
  90. for(i=0;i<n;i++)
  91. printf("%d\t%d\t%d\n",i,rrtable[i][0],rrtable[i][1]);
  92. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement