Đăng Nhập

Vui lòng khai báo chính xác tên truy cập và mật khẩu!

Quên mật khẩu?

    code chuyển từ ds cạnh sang ma trận kề 2

      Admin
      Admin

      Giới tính : Nam

      Đến từ : TPHCM

      Ngày Tham gia : 03/04/2011

      Tổng số bài gửi : 2292

      #1

       Tue Oct 11, 2011 8:53 pm


      code chuyển từ ds cạnh sang ma trận kề 2
      Code:
      #include<iostream.h>
      #include<fstream.h>

      #define FI "ChuyenDoiDoThi4.inp"
      #define FO "ChuyenDoiDoThi4.out"
      ifstream finp (FI);
      ofstream fout (FO);

      #define MAX 100
      int i,j;


      typedef struct EdgeTag
      {
         int u, v;
      } Edge;
      typedef struct GraphTag4
      {
         int m;
         Edge e[MAX];
         int a[MAX][MAX];
      } Graph4;

      void InputGraph(Graph4 &g)
      {
         for (i=0;i<6;i++)
                    for (j=0;j<6;j++)
               g.a[i][j]=0;
         finp >> g.m;
         for (i=0; i<g.m; i++)
         {
            finp >> g.e[i].u >> g.e[i].v;
            g.a[g.e[i].u][g.e[i].v]=1;
            g.a[g.e[i].v][g.e[i].u]=1;
            
         }
            
      }

      void OutputGraph(Graph4 g)
      {
         for (i=0;i<6;i++)
         { 
            for (j=0;j<6;j++)
               fout<<g.a[i][j]<<" ";
            fout<<endl;
         }
      }

      void main()
      {
         Graph4 g;
         InputGraph(g);
          OutputGraph(g);

         finp.close();
         fout.close();
      }

      đoạn code trên có gì chưa tối ưu xin góp ý
      Code:


      int max;
      void InputGraph(Graph4 &g)
      {

         for (i=0;i<MAX;i++)
                    for (j=0;j<MAX;j++)
               g.a[i][j]=0;
         finp >> g.m;
         for (i=0; i<g.m; i++)
         {
            finp >> g.e[i].u >> g.e[i].v;
            // ma tran ke la ma tran doi xung
            g.a[g.e[i].u][g.e[i].v]=1;
            g.a[g.e[i].v][g.e[i].u]=1;
            max=g.e[i].v;   
         }
            
      }

      void OutputGraph(Graph4 g)
      {
         for (i=0;i<max+1;i++)
         { 
            for (j=0;j<max+1;j++)
               fout<<g.a[i][j]<<" ";
            fout<<endl;
         }
      }