Đă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?

    Chuyển đổi các cách biểu diễn đồ thị(ma trận kề -->danh sách kề)

      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:20 pm

      Chuyển đổi các cách biểu diễn đồ thị(ma trận kề -->danh sách kề)

      e "matran.txt" chứa ma trận có trọng số biểu diễn cho đồ thị..
      "
      4
      0 1 0 0
      0 0 1 1
      1 0 0 0
      1 0 1 0
      "
      yêu cầu viết chương trình đọc file "matran.txt" để chuyển đồ thị sang biểu diễn bằng danh sách kề và ghi ra file "ds.txt"
      "
      4
      1 1
      2 2 3
      1 0
      2 0 2
      "

      Mình chạy từ 1->n nha, bạn chạy từ 0->n-1 thì sửa lại tí
      Code:
      #include<iostream>
      #include<conio.h>
      #define nm 101
      using namespace std;
      int n,x;
      int a[nm][nm];
      int s[nm];
      int main()
      {
          freopen("matran.txt","r",stdin);
          scanf ("%d",&n);
          for (int i=1;i<=n;i++)
          {
              for (int j=1;j<=n;j++)
              {
                  scanf ("%d",&x);
                  if (x)
                  {
                    s[i]++;
                    a[i][s[i]]=j;
                  }
              }
          }
          for (int i=1;i<=n;i++)
          {
              printf ("%d : ",s[i]);
              for (int j=1;j<=s[i];j++)
              printf ("%d ",a[i][j]);
              printf ("\n");
          }
          getch();
          return 0;
      }