Y2 – BSTreeDemo 1.0 – Minh họa cây nhị phân tìm kiếm (BST)

Đây là chương trình tôi viết để minh họa về BST như đã nói ở trên. Vì được viết khá vội và chỉ để minh họa đơn giản nên tôi chưa chú trọng nhiều đến giao diện và hiệu suất thực thi, tuy nhiên chức năng cũng khá đầy đủ để bạn tham khảo.

 

Download

Y2 BSTreeDemo 1.0

Y2 BSTreeDemo 1.0

  • Phần textbox màu đen phía dưới cửa sổ bạn có thể nhập các câu lệnh để thao tác với cây. Cách dùng các lệnh như sau (không phân biệt hoa thường):

Quy ước:

  • Tham số trong cặp {} là bắt buộc, tham số trong [] là tùy chọn.
  • Các tham số cách nhau bởi khoảng trắng hoặc dấu phẩy ’,’.

–               Tạo cây ngẫu nhiên:

Random {size} {min} {max}

 

Ex: random 10 1 100
Tạo cây có tối đa 10 node với các giá trị node ngẫu nhiên từ 1 đến 100. Vì hàm tạo không kiểm tra trùng nên số phần tử được thêm vào cây có thể ít hơn giá trị nhập vào.

–               Xóa toàn bộ node

 

Clear

–               Chèn node

 

Add {number1}, [number2], [number3] …

Ex:       add 10 6 8 9 20 3 11

add 10, 6, 8, 9, 20, 3

 

Sẽ chèn các node có các giá trị tương ứng theo thứ tự là 10, 6, 8, 9,…

–               Xóa node

Del {number}

Delete {number}

–               Tìm node

Find {number}

Search {number}

–               Duyệt cây

InOrder

PreOrder

PostOrder

–               Thoát chương trình

Exit


Chương trình còn khá sơ xài và có thể còn lỗi, nếu có thắc mắc hoặc góp ý vui lòng comment bên dưới, tôi sẽ cập nhật nếu  thấy cần thiết.

https://yinyangit.wordpress.com

Advertisements

18 thoughts on “Y2 – BSTreeDemo 1.0 – Minh họa cây nhị phân tìm kiếm (BST)

  1. Cảm ơn bạn đã chia sẻ mã nguồn và hướng dẫn chi tiết nhá.
    Bạn cho hỏi làm thế nào để vẽ được node có hình thế kia và sử dụng sự kiện paint để để vẽ lại ?.
    Mình đang làm chương trình mô phỏng một số thuật toán trí tuệ nhân tạo bằng vb.net và cần vẽ không gian trạng thái gần giống cây nhị phân, mình đã dùng GDI + dùng hàm drawelipse …. để vẽ đỉnh.
    Cảm ơn bạn rất nhiều

    Trả lời
  2. Chào bạn. Cám ơn bạn đã chia sẻ chương trình của Bạn. Chương trình làm của bạn còn khá đơn giản. Hi vọng bạn sẽ phát triển chương trình tốt hơn. Và mô phỏng chi tiết hơn về đường đi đệ quy của các thuật toán.
    Chúc bạn sẽ làm được nhiều ứng dụng tốt hơn nữa.

    Trả lời
    • Trong phần mềm Weka hình như có thuật toán này, nhưng chắc phải mày mò lâu à. Đây là phần mềm mã nguồn mở.
      Bạn có thể tìm tài liệu môn Data Mining ở trường Đại học KHTN Tp.Hồ Chí Minh, mấy bài thực hành nói kỹ về phần mềm này lắm, Weka có các Module demo mấy thuật toán có sẵn trên các tập dự liệu cả mấy chục ngàn dòng = excel, vsd ..

      Trả lời
  3. Bạn ơi cho mình hỏi xí về Code nhé mình ko hiểu cho lắm. Mình thấy bạn để có phần where T: Incomperable. vậy cái này có nghĩa là gì? thêm nữa. trong các phần thuật toán In, Pre, Post. bạn đều để _list.Clear(); vậy cái này có mục đích gì thế bạn? mong bạn hồi âm sớm. mình cảm ơn.

    Trả lời

Trả lời

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s