Từ 1 tới 10 trên tổng số 10 kết quả

Đề tài: Tìm đường đi mê cung trong lập trình C?

  1. #1
    Ngày gia nhập
    03 2009
    Bài viết
    1

    Mặc định Tìm đường đi mê cung trong lập trình C?

    Trình bày thuật toán và cài đặt trên C chương trình ứng dụng thuật toán quay lui để tìm đường đi trong mê cung. (Chương trình đọc dữ liệu từ một file INPUT.TXT số đỉnh của đồ thị, tên các đỉnh và cạnh liên thuộc, đỉnh nguồn, đỉnh đích; chương trình đọc file, xử lý và ghi ra file OUTPUT.TXT đường đi có thể) *
    File INPUT.TXT:
    5
    1 5
    0 2 5 0 0
    0 0 0 1 0
    0 0 0 0 1
    0 0 1 0 3
    0 0 0 0 0
    File OUTPUT.TXT:
    1 -> 2 -> 4 -> 3 -> 5
    5
    giúp mình mot ti nha

  2. #2
    Ngày gia nhập
    03 2009
    Bài viết
    5

    code:
    C Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3. int a[100][100],free[100],x[100],n,xp,kt;  
    4. void printfresult(int dem)
    5. {
    6.      int i;
    7.      for(i=1;i<=dem;i++)
    8.      {
    9.                         printf(" %d ",x[i]);
    10.      }
    11.      printf("\n");
    12. }
    13. void khoitao()
    14. {
    15.      int i;
    16.      for(i=1;i<=n;i++)
    17.      {
    18.                       free[i]=1;
    19.      }
    20. }
    21. void dfs(int k,int dem)
    22. {
    23.      int v;
    24.      for(v=1;v<=n;v++)
    25.      {
    26.                       if(a[x[k-1]][v]&&free[v])
    27.                       {
    28.                                                dem = dem +1;
    29.                                                    x[k] = v;
    30.                                                    free[v] = 0;
    31.                                                    if(x[k] == kt)
    32.                                                    {
    33.                                                            printfresult(dem);
    34.                                                            free[v] = 1;
    35.                                                            dem = dem - 1;
    36.                                                            return;
    37.                                                    }
    38.                                                    dfs(k+1,dem);
    39.                                                    free[v] = 1;
    40.                                                    dem = dem - 1;
    41.              
    42.                                                    
    43.                       }
    44.      }
    45. }
    46. main()
    47. {
    48.       FILE *f;
    49.       int i,j;
    50.       if((f=fopen("c://file//BFS.INP","r"))==NULL)
    51.       {
    52.                                                   printf("khongn tim thay file o vi tri c://file ");
    53.       }
    54.       else
    55.       {
    56.           fscanf(f,"%d%d%d",&n,&xp,&kt);
    57.           for(i=1;i<=n;i++)
    58.           for(j=1;j<=n;j++)
    59.           {
    60.                            fscanf(f,"%d",&a[i][j]);
    61.           }
    62.           khoitao();
    63.           x[1]=xp;
    64.           free[xp]=0;
    65.           dfs(2,1);
    66.       }
    67.       getch();
    68. }
    ket qua:
    1 2 4 3 5
    1 2 4 5
    1 3 5
    Attached Files Attached Files

  3. #3
    Ngày gia nhập
    08 2008
    Nơi ở
    Liên Bang Nga
    Bài viết
    46

    Xử lý Bài Toán Mê Cung trên C++?
    Bài này trên forum mình đã thấy viết nhiều rồi mà, sao hôm nay lại hỏi lại không biết nữa
    Tôi thường thích những cái gì mà tôi không bao giờ có được...

  4. #4
    Ngày gia nhập
    01 2012
    Bài viết
    1

    Có ai giúp mình giải bài này với.
    Nhập ma trận kề của đồ thị từ tập tin input.txt. Duyệt đồ thị bằng phép duyệt theo chiều sâu (DFS) và xuất vào tập tin ouput.txt thứ tự duyệt các đỉnh

    Nôi dung tập tin input.txt:

    8

    0 1 1 0 0 0 1 0

    1 0 1 1 0 0 0 1

    1 1 0 0 0 0 1 0

    0 1 0 0 1 0 0 1

    0 0 0 1 0 1 0 1

    0 0 0 0 1 0 0 0

    1 0 1 0 0 0 0 0

    0 1 0 1 1 0 0 0

    - Tập tin ouput.txt:

    0 1 2 6 3 4 5 7

  5. #5
    Ngày gia nhập
    01 2010
    Bài viết
    8

    Mấy bạn ơi! mình coi code trong bài đường đi trong mê cung rùi,nhưng mìh cũng vẫn chưa thật sự hiểu ...Mấy bạn có thể giúp mình được không

  6. #6
    Ngày gia nhập
    10 2011
    Bài viết
    552

    Mặc định Tìm đường đi mê cung trong lập trình C?

    Ko hiểu chỗ nào, ko hiểu chỗ nào thì trình bày cụ thể.
    Nói chung chung vậy khác nào bắt người khác đi chợ mua đồ về nấu, nấu xong bày ra rồi đút cho ăn ?
    Um Mani Padme Hum...!!

  7. #7
    Ngày gia nhập
    11 2010
    Nơi ở
    Black Hole
    Bài viết
    824

    Mình cũng chẳng hiểu cái ví dụ trên.

    0 1 1 0 0 0 1 0

    1 0 1 1 0 0 0 1

    1 1 0 0 0 0 1 0

    0 1 0 0 1 0 0 1

    0 0 0 1 0 1 0 1

    0 0 0 0 1 0 0 0

    1 0 1 0 0 0 0 0

    0 1 0 1 1 0 0 0


    Mình thì nghĩ là vào mê cung thì phải có vị trí vào và vị trí ra. mỗi bước đi phải dc hiển thị bởi cặp số (a,b).
    kết quả ra là 0 1 2 6 3 4 5 7 thì quả thật ko hiểu.
    Come as guest...... stay as family......... because we're smiling together.

  8. #8
    Ngày gia nhập
    02 2012
    Bài viết
    1

    có bác nào biết về thuật toán tô màu cạnh cho đồ thị phân đôi không?
    chỉ giúp e với !!!!!!!!

  9. #9
    Ngày gia nhập
    09 2011
    Nơi ở
    Registry
    Bài viết
    43

    Duyệt đồ thị theo chiều sâu đấy bạn -DFS
    Đọc tài liệu sẽ rõ à
    C++ Code:
    1. int BanHoc=1, BanBiet=10;
    2.     if(BanHoc==0)
    3.         cout <<"Ban nen di hoc!";
    4.     else
    5.         if(BanBiet==10)
    6.             cout <<"Ban qua pro!";

  10. #10
    Ngày gia nhập
    09 2013
    Bài viết
    1

    Mặc định có ai có thể giải thích rõ hơn cho mình từng phần của thuật toán này dc k? vd như khai báo biến free,mãng x[] lam gj

    Trích dẫn Nguyên bản được gửi bởi gameking_49 Xem bài viết
    code:
    C Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3. int a[100][100],free[100],x[100],n,xp,kt;  
    4. void printfresult(int dem)
    5. {
    6.      int i;
    7.      for(i=1;i<=dem;i++)
    8.      {
    9.                         printf(" %d ",x[i]);
    10.      }
    11.      printf("\n");
    12. }
    13. void khoitao()
    14. {
    15.      int i;
    16.      for(i=1;i<=n;i++)
    17.      {
    18.                       free[i]=1;
    19.      }
    20. }
    21. void dfs(int k,int dem)
    22. {
    23.      int v;
    24.      for(v=1;v<=n;v++)
    25.      {
    26.                       if(a[x[k-1]][v]&&free[v])
    27.                       {
    28.                                                dem = dem +1;
    29.                                                    x[k] = v;
    30.                                                    free[v] = 0;
    31.                                                    if(x[k] == kt)
    32.                                                    {
    33.                                                            printfresult(dem);
    34.                                                            free[v] = 1;
    35.                                                            dem = dem - 1;
    36.                                                            return;
    37.                                                    }
    38.                                                    dfs(k+1,dem);
    39.                                                    free[v] = 1;
    40.                                                    dem = dem - 1;
    41.              
    42.                                                    
    43.                       }
    44.      }
    45. }
    46. main()
    47. {
    48.       FILE *f;
    49.       int i,j;
    50.       if((f=fopen("c://file//BFS.INP","r"))==NULL)
    51.       {
    52.                                                   printf("khongn tim thay file o vi tri c://file ");
    53.       }
    54.       else
    55.       {
    56.           fscanf(f,"%d%d%d",&n,&xp,&kt);
    57.           for(i=1;i<=n;i++)
    58.           for(j=1;j<=n;j++)
    59.           {
    60.                            fscanf(f,"%d",&a[i][j]);
    61.           }
    62.           khoitao();
    63.           x[1]=xp;
    64.           free[xp]=0;
    65.           dfs(2,1);
    66.       }
    67.       getch();
    68. }
    ket qua:
    1 2 4 3 5
    1 2 4 5
    1 3 5
    đang rất cần giúp đỡ. tại mình mới học nên k hiểu dc thuật toán ở trên. các bạn có thể giải thích giúp mình về thuật toán này dc k?

Các đề tài tương tự

  1. Cung cấp dịch công chứng giá rẻ lấy ngay trong 12h
    Gửi bởi thachdinh908 trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 25-10-2012, 10:14 AM
  2. XNA-[A*] game tìm đường đi trong mê cung
    Gửi bởi zstar trong diễn đàn Sản phẩm phần mềm của bạn
    Trả lời: 30
    Bài viết cuối: 08-10-2012, 11:42 PM
  3. Graphic làm sao xây dựng mê cung pacman trong lập trình C#??
    Gửi bởi kem92 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 0
    Bài viết cuối: 07-05-2012, 08:45 PM
  4. Tìm đường đi tốt nhất trong mê cung cho trước xuất phát từ điểm cho trước trong C++?
    Gửi bởi quanganhct trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 4
    Bài viết cuối: 06-03-2011, 11:21 PM
  5. Bài tập C++ Tìm lối đi trong mê cung
    Gửi bởi luuly1103 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 16
    Bài viết cuối: 25-07-2010, 07:51 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn