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

Đề tài: Dùng danh sách liên kết để biễu diễn cây tổng quát?

  1. #1
    Ngày gia nhập
    08 2010
    Bài viết
    20

    Mặc định Dùng danh sách liên kết để biễu diễn cây tổng quát?

    Chào mọi người , hôm nay em học đến cấu trúc cây ! Biểu diễn cây bằng mảng em hiểu tương đối rõ nhưng dùng DSLK thì em chưa hình dung ra được . Hướng nghĩ của em là dùng 3 con trỏ Parent , LeftChild và RightSibling . Em khai báo thế này
    Code:
    typedef struct Node 
       { 
             char      Label    ;
             Node*    Parent ;
             Node*    LeftChild ;
            Node*     RightSibling ;
        } ;
    typedef Node* Tree ;
    Em khai báo vậy có được không ah ?

    Em suy nghĩ mãi chỉ có ý tưởng vậy , em chưa hình dung được cách lưu trữ và truy xuất cây khi cài đặt bằng DSLK sẽ thế nào ? Hy vọng được sự hướng dẫn của mọi người ....Thanks mọi người

  2. #2
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Mình cũng ko hiểu bạn đang nói về cây gì luôn. Có thể bạn đang làm về cây nhị phân, có 2 nhánh. Nếu 2 nhánh thì bạn chỉ mỗi node phải chứa 2 con trỏ, con trỏ left trỏ về node con nhánh trái, con trỏ right trỏ về node con nhánh phải. Node cha chỉ cần biết node con trực tiếp với nó, ko cần biết cháu chắt là ai. Khi nó cần tìm cháu, chắt, nó sẽ hỏi thằng con gần nhất với nó. Thằng con lại đi hỏi con của nó ( node cháu ), cứ như thế tìm xuống dần dần.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  3. #3
    Ngày gia nhập
    01 2011
    Nơi ở
    -Mountain-
    Bài viết
    768

    Trích dẫn Nguyên bản được gửi bởi tyrant Xem bài viết
    Chào mọi người , hôm nay em học đến cấu trúc cây ! Biểu diễn cây bằng mảng em hiểu tương đối rõ nhưng dùng DSLK thì em chưa hình dung ra được . Hướng nghĩ của em là dùng 3 con trỏ Parent , LeftChild và RightSibling . Em khai báo thế này
    Code:
    typedef struct Node 
       { 
             char      Label    ;
             Node*    Parent ;
             Node*    LeftChild ;
            Node*     RightSibling ;
        } ;
    typedef Node* Tree ;
    Em khai báo vậy có được không ah ?

    Em suy nghĩ mãi chỉ có ý tưởng vậy , em chưa hình dung được cách lưu trữ và truy xuất cây khi cài đặt bằng DSLK sẽ thế nào ? Hy vọng được sự hướng dẫn của mọi người ....Thanks mọi người
    Bạn nên đánh giá bài toán. Dùng con trỏ để làm gì ? Chứ không phải là cứ tạo là ok
    Nếu như bạn đã có hướng suy nghĩ thì bạn cũng nên trình bày giá trị của mỗi con trỏ
    Khi gặp bài toán cây thường có 2 cách để xử lý. Một là mảng con trỏ (lãng phí nên người ta ít dùng)
    ----> Mỗi nút trỏ tới các con của nó.
    còn cách 2: Mỗi nút có 2 con trỏ. Một con trỏ trỏ tới em kề của nó. Và thằng trỏ còn lại trỏ tới thằng con cả
    -- Nếu bạn dùng 3 con trỏ bạn có thể trình bày rõ ý tưởng, nhiệm vụ của chúng thì mọi người mới phân tích đúng sai đc
    Hướng dẫn C++: https://www.youtube.com/watch?v=BwLodoQdoY4&list=PL1c9Uxlo-mplJDRGdONNupgo5OCBTyGGn

  4. #4
    Ngày gia nhập
    08 2010
    Bài viết
    20

    Trích dẫn Nguyên bản được gửi bởi meoconlongvang Xem bài viết
    Mình cũng ko hiểu bạn đang nói về cây gì luôn. Có thể bạn đang làm về cây nhị phân, có 2 nhánh. Nếu 2 nhánh thì bạn chỉ mỗi node phải chứa 2 con trỏ, con trỏ left trỏ về node con nhánh trái, con trỏ right trỏ về node con nhánh phải. Node cha chỉ cần biết node con trực tiếp với nó, ko cần biết cháu chắt là ai. Khi nó cần tìm cháu, chắt, nó sẽ hỏi thằng con gần nhất với nó. Thằng con lại đi hỏi con của nó ( node cháu ), cứ như thế tìm xuống dần dần.
    Mình đang biểu diễn cây tổng quát bằng danh sách liện kết , ý tưởng mình là sẽ dùng 2 con trỏ 1 con trỏ -> con trái nhất của nó , một con trỏ -> anh em ruột kế nó , mình có nên thêm 1 con trỏ để giữ vị trí Parent không ? và cách thức truy xuất nó ra sao ah em đang rối điểm này

  5. #5
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Bạn đang tự làm bạn rối đó. Mình đã nói trong cây dễ nhất là quan hệ cha-con. Bạn lưu anh-em sẽ rất khó xử lý và làm phức tạp quá trình duyệt cây lên.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  6. #6
    Ngày gia nhập
    08 2010
    Bài viết
    20

    Mặc định Dùng danh sách liên kết để biễu diễn cây tổng quát?

    Trích dẫn Nguyên bản được gửi bởi meoconlongvang Xem bài viết
    Bạn đang tự làm bạn rối đó. Mình đã nói trong cây dễ nhất là quan hệ cha-con. Bạn lưu anh-em sẽ rất khó xử lý và làm phức tạp quá trình duyệt cây lên.
    àh mình biết ,nhưng cài đặt cây mình được giao 2 yêu cầu 1 la bằng mảng , cái này thì mình đã làm xong , còn thứ 2 là cài đặt bằng danh sách liên kết vậy nên mình mới cần sự tư vấn của mọi người . Cây này được yêu câu sử dụng cả con trái và anh em phải

  7. #7
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Cây dùng con trái và anh em phải mình chưa từng nghe bao giờ.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  8. #8
    Ngày gia nhập
    01 2011
    Nơi ở
    -Mountain-
    Bài viết
    768

    Trích dẫn Nguyên bản được gửi bởi meoconlongvang Xem bài viết
    Cây dùng con trái và anh em phải mình chưa từng nghe bao giờ.
    Cách này em thấy người ta dùng khá nhiều mà anh . Dùng mảng con trỏ như cách anh nói thì dễ thực hiện + dễ hình dung hơn. Tuy nhiên mỗi node lại có nhiều, ít số con khác nhau. Do đó khó tránh khỏi chuyện tốn kém tài nguyên.
    @tyrant: Bạn chỉ cần 2 con trỏ ở mỗi node thôi. Một con trỏ trỏ tới em liền kề, một con trỏ trỏ tới con ngoài cùng bên trái.
    Suy nghĩ giống với dslk thôi. chỉ cần một con trỏ để lưu gốc. Những cái còn lại không cần quan tâm quá nhiều
    Hướng dẫn C++: https://www.youtube.com/watch?v=BwLodoQdoY4&list=PL1c9Uxlo-mplJDRGdONNupgo5OCBTyGGn

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

  1. Con trỏ trên C++ Đổi hệ 10 sang 2 dùng danh sách liên kết đơn
    Gửi bởi doraemon1993 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 0
    Bài viết cuối: 07-03-2013, 08:21 PM
  2. Bài toán quản lí nhân viên dùng dùng danh sách liên kết trong C++. Mong mọi người góp ý!
    Gửi bởi rataki trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 1
    Bài viết cuối: 22-11-2012, 11:26 PM
  3. Bài tập C Dùng danh sách liên kết đơn lưu trữ tập hợp các số nguyên
    Gửi bởi cr9 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 12-04-2012, 11:23 PM
  4. Danh sách liên kết dùng chèn đầu
    Gửi bởi ovaner trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 5
    Bài viết cuối: 17-10-2011, 09:34 PM
  5. Bài tập C Dùng danh sách liên kết đơn lưu trữ đa thức
    Gửi bởi cr9 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 23-03-2011, 06:01 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