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

Đề tài: Tìm kiếm đồ thị theo chiều sâu - Không xuất được kết quả

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

    Mặc định Tìm kiếm đồ thị theo chiều sâu - Không xuất được kết quả

    Mình làm bài này mà ko ra kết quả, ko biết sai ở đâu mong các bạn chỉ dùm ạ
    C++ Code:
    1. #include <iostream.h>
    2. #define max 100
    3. int chuaxet[max],G[max][max],n;
    4. void Init(int G[max][max],int n)
    5. {
    6.     cout <<"NHap so dinh cua do thi: ";
    7.     cin >>n;
    8.     cout <<"\n Ma tran ke cua do thi:\n";
    9.     for(int i=1;i<=n;i++)
    10.     {
    11.         for(int j=1;j<=n;j++)
    12.         {
    13.             cout <<"G["<<i<<"]["<<j<<"]:";
    14.             cin >>G[i][j];
    15.         }
    16.     }
    17. }
    18. int DFS(int G[][max],int v)
    19. {
    20.     for(v=1;v<=n;v++) // Duyet dinh v
    21.     cout <<v;
    22.     chuaxet[v]=0;       //Danh dau da xet dinh v
    23.     for(int u=1;u<=n;u++)
    24.         if(G[v][u]==1 && chuaxet[u]==1)
    25.             DFS(G,u);
    26.     return u;
    27. }
    28.  
    29. void main()
    30. {
    31.     // Nhap do thi, tao mang ke
    32.     Init(G,n);
    33.     for(int v=1;v<=n;v++)
    34.         chuaxet[v]=1; // Khoi tao co cho dinh
    35.     cout <<"\n\n";
    36.     for(v=1;v<=n;v++)
    37.         if(chuaxet[v]==1)
    38.             DFS(G,v);  
    39.  
    40. }
    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!";

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

    Học đến lý thuyết này rồi mà kỹ năng lập trình còn chán ghê vậy
    1)Nhập n ở trong hàm mà ko truyền n ở dạng tham chiếu
    2)Truyền v vào hàm mà lại cho v đi chạy từ 1->n vậy thì còn truyền vào làm gì nữa.
    3)
    C++ Code:
    1. for(int u=1;u<=n;u++)
    2.         if(G[v][u]==1 && chuaxet[u]==1)
    3.             DFS(G,u);
    4.     return u;
    Ra khỏi vòng lặp for thì u mất rồi còn đâu nữa mà return u
    4) Đệ quy mà không có suy biến ?

    Những tưởng học tới cái ghê gớm này thì mấy cái lặt vặt về lập trình kia phải được trau dũa từ các học kỳ trước rồi chứ ?
    Um Mani Padme Hum...!!

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

    mình đang học kỹ thuật lập trình cùng với môn này nên chưa rành lắm, mong bạn giúp đỡ thêm. Còn cái n thì mình khai báo toàn cục nên không cần truyền tham chiếu đâu bạn
    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!";

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

    Toàn cục nhưng hàm sẽ ưu tiên xử lý biến cục bộ trước biến toàn cục.
    Nếu truyền tham số vào cho nó thì nó xem đó là 1 biến cục bộ và nó sẽ xử lý trước
    1 là bạn phải truyền theo tham chiếu
    2 là bạn bỏ tham số đó, không cần truyền vào

    Còn các vấn đề 2 3 4 nữa, suy ngẫm thử đi
    ___

    Nếu bạn học 2 môn này song song thì chịu khó tự học/tìm hiểu trước cho vững cái "Kỹ thuật lập trình.." đi đã. Môn này bạn học đến nội dung nào rồi ?

    Phải biết sử dụng công cụ thì mới đóng được cái bàn, làm ra cái ghế. Công cụ chưa biết dùng thì chưa thể làm ra sản phẩm được
    p/s: Trường bạn vui nhỉ. Dạy lập trình chưa xong đã đi dạy cho mấy cái lý thuyết thuật toán "cao cấp" này rồi. Làm sao sinh viên code được
    Đã được chỉnh sửa lần cuối bởi clchicken : 11-03-2012 lúc 07:37 PM.
    Um Mani Padme Hum...!!

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

    vậy mình sẽ truyền cho nó, còn cái v bạn nói là v ở chỗ nào thế?
    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!";

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

    Mặc định Tìm kiếm đồ thị theo chiều sâu - Không xuất được kết quả

    thanks bạn nhiều nha, mình sẽ suy nghĩ thêm
    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!";

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

  1. Trả lời: 4
    Bài viết cuối: 10-09-2012, 06:34 PM
  2. Trả lời: 0
    Bài viết cuối: 04-05-2012, 10:58 PM
  3. Vì sao Duyệt đồ thị theo chiều rộng không xuất ra kết quả?
    Gửi bởi hatnang trong diễn đàn Thắc mắc CTDL & Giải thuật
    Trả lời: 5
    Bài viết cuối: 17-04-2012, 06:50 PM
  4. Bài tập C Tìm kiếm theo chiều sâu DFS
    Gửi bởi pnst_1811 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 1
    Bài viết cuối: 01-04-2012, 07:19 PM
  5. Thuật toán C++ Tìm kiếm đồ thị theo chiều sâu (Sử dụng Stack)- Không xuất được kết quả
    Gửi bởi nhatminh266 trong diễn đàn Thắc mắc CTDL & Giải thuật
    Trả lời: 2
    Bài viết cuối: 13-03-2012, 01:13 AM

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