(11)图的表示.CPP
上传用户:wxj1219
上传日期:2013-01-31
资源大小:6k
文件大小:1k
源码类别:

数据结构

开发平台:

C/C++

  1. #include<iostream.h>
  2. #include<conio.h>
  3. #include<stdio.h>
  4. int NodeCount;
  5. char Node[20];
  6. char Graph[20][20];
  7. char Link[20][20];
  8. char Locate(char Char)
  9. {
  10. char Temp;
  11. for(Temp=0;Temp<NodeCount;Temp++)
  12. if(Node[Temp]==Char)
  13. break;
  14. return Temp;
  15. }
  16. void main()
  17. {
  18. char Temp1,Temp2,Temp3;
  19. clrscr();
  20. for(Temp2=0;Temp2<20;Temp2++)
  21. for(Temp1=0;Temp1<20;Temp1++)
  22. Graph[Temp2][Temp1]=0;
  23. for(Temp2=0;Temp2<20;Temp2++)
  24. for(Temp1=0;Temp1<20;Temp1++)
  25. Link[Temp2][Temp1]=255;
  26. cout<<"Input the node count:";
  27. cin>>NodeCount;
  28. cout<<"Input the node:";
  29. for(Temp1=0;Temp1<NodeCount;Temp1++)
  30.       cin>>Node[Temp1];
  31. cout<<"Input the link:";
  32. Temp1=0;
  33. while(1)
  34. {
  35. scanf("%c,%c",&Temp1,&Temp2);
  36. if(Temp1=='$')
  37. break;
  38. Temp1=Locate(Temp1);
  39. Temp2=Locate(Temp2);
  40. Graph[Temp2][Temp1]=1;
  41. Graph[Temp1][Temp2]=1;
  42. }
  43. for(Temp2=0;Temp2<NodeCount;Temp2++)
  44. {
  45. for(Temp1=0;Temp1<NodeCount;Temp1++)
  46. cout<<(int)Graph[Temp2][Temp1]<<" ";
  47. cout<<endl;
  48. }
  49. for(Temp2=0;Temp2<NodeCount;Temp2++)
  50. {
  51. Temp3=0;
  52. for(Temp1=0;Temp1<NodeCount;Temp1++)
  53. if(Graph[Temp2][Temp1]==1)
  54. {
  55. Link[Temp2][Temp3]=Temp1;
  56. Temp3++;
  57. }
  58.  }
  59. for(Temp1=0;Temp1<NodeCount;Temp1++)
  60. {
  61. cout<<Node[Temp1]<<":";
  62. for(Temp2=0;Temp2<NodeCount;Temp2++)
  63. {
  64. if(Link[Temp1][Temp2]==255)
  65. break;
  66. cout<<Node[Link[Temp1][Temp2]];
  67. }
  68. cout<<endl;
  69. }
  70. }