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

Đề tài: [c]lý thuyết đồ thị

  1. #1
    No Avatar
    diepanh Khách

    Mặc định [c]lý thuyết đồ thị

    có ai đã học qua lý thuyết đồ thị rồi chưa.Làm ơn giải thích cho mình cách chạy của một bài duyệt theo chiều rộng và tìm kiếm dựa theo BFS với. Khó hiểu quá!

  2. #2
    No Avatar
    thandongdatviet Khách

    Thủ tục:duyệt đồ thị theo chiều rộng BFS
    void BFS(G,v)
    { Init Q(Q);
    visit(v);
    visited[v] = 1; //nếu v đã được thăm thì đẩy nó vào q
    Insert Q(Q,v);
    while (!=Empty Q(Q))
    { v = Delete Q(Q);
    for các đỉnh w là đỉnh kề của v
    if (visited[w] = 0)
    { visit(w);
    visited[w] = 1;
    Insert Q(Q,w);}
    }
    }
    ================================================
    code
    void mgraph::BFS(int v1)
    {
    int visited[100];
    int v;
    Queue Q;
    for(int i=1;i<=V;i++)
    visited[i]=0;
    visited[v1]=1;
    Creat(Q,V);
    Push(Q,v1);

    cout<<"Ket qua duyet do thi\n"<<v1;
    while(!Empty(Q))
    {
    v=Pop(Q);
    for(int i=1;i<=V;i++)
    if(g[v][i]!=0&&visited[i]==0)
    {

    Push(Q,i);
    visited[i]=1;
    cout<<" "<<i;
    }
    }
    Chúc bạn thành công nha!

  3. #3
    Ngày gia nhập
    08 2006
    Nơi ở
    Hải Phòng
    Bài viết
    78

    Trích dẫn Nguyên bản được gửi bởi thandongdatviet
    Thủ tục:duyệt đồ thị theo chiều rộng BFS
    void BFS(G,v)
    { Init Q(Q);
    visit(v);
    visited[v] = 1; //nếu v đã được thăm thì đẩy nó vào q
    Insert Q(Q,v);
    while (!=Empty Q(Q))
    { v = Delete Q(Q);
    for các đỉnh w là đỉnh kề của v
    if (visited[w] = 0)
    { visit(w);
    visited[w] = 1;
    Insert Q(Q,w);}
    }
    }
    ================================================
    code

    Chúc bạn thành công nha!
    bài viết thật hay cảm ơn nhiều lắm
    nhưng hàm Creat(Q,V) thế nào??
    hàm Push(Q,V1) thế nào ?
    bác làm giúp em !
    Đã được chỉnh sửa lần cuối bởi huongit1984 : 14-01-2007 lúc 10:44 AM.

  4. #4
    No Avatar
    thandongdatviet Khách

    Bạn dùng thử cái này xem.
    Hàm Creat
    void Creat(Queue &Q,int n)
    {
    Q.size=n;
    for(int i=0;i<n;i++)Q.Item[i]=0;
    Q.tail=Q.head=-1;
    }
    ======================================
    Hàm Push
    void Push(Queue &Q,int v)
    {
    if(Q.tail==-1)Q.tail=0;
    if(!Full(Q))
    {
    Q.tail++;
    Q.Item[Q.tail]=v;
    }
    else { cout<<"\nQueue tran"; getch();}
    }
    Bạn còn gì thắc mắc nữa không vậy?

  5. #5
    Ngày gia nhập
    08 2006
    Nơi ở
    Hải Phòng
    Bài viết
    78

    Trích dẫn Nguyên bản được gửi bởi thandongdatviet
    Bạn dùng thử cái này xem.
    Hàm Creat
    ======================================
    Hàm Push

    Bạn còn gì thắc mắc nữa không vậy?
    hay lắm thanks kju ju bạn nhiều

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

  1. Thuyết Trình Ext Js for asp.net
    Gửi bởi bigs1993 trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 1
    Bài viết cuối: 07-12-2013, 11:06 PM
  2. bài tập lý thuyết đồ thị
    Gửi bởi canhocthem trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 5
    Bài viết cuối: 11-10-2010, 11:39 PM
  3. lý thuyết tô màu cho đồ thị
    Gửi bởi #include# trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 24-09-2008, 04:11 PM
  4. Lý thuyết đồ thị với C++
    Gửi bởi CuongNH trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 6
    Bài viết cuối: 15-04-2008, 09:39 AM
  5. [Phụ lục C] - Dành cho tra cứu lý thuyết C
    Gửi bởi Kevin Hoang trong diễn đàn Thủ thuật, Tutorials và Mã nguồn C/C++/C++0x
    Trả lời: 7
    Bài viết cuối: 22-08-2006, 11:53 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