2010-12-01 40 views
6

Làm cách nào để tìm kiếm "cân bằng" cây tìm kiếm bậc ba? Hầu hết các triển khai tst không giải quyết cân bằng, nhưng đề nghị chèn theo thứ tự tối ưu (mà tôi không thể kiểm soát.)Cân bằng cây tìm kiếm thứ ba

+0

Cây tìm kiếm lớn bao nhiêu? –

+0

Một vài nghìn từ có từ 4 đến 20 ký tự. Không chắc chắn nếu đó là lớn hay nhỏ, nhưng nó lớn đối với tôi. – uroc

+0

Âm thanh như vứt bỏ cây khi nó đến một điểm nhất định và thay thế nó bằng một cây được xây dựng với 'thứ tự tối ưu' là đặt cược tốt nhất của bạn - sẽ mất một phần nghìn giây, nếu bạn có thể dành thời gian. –

Trả lời

4

Bài viết trong Dr. Dobbs về số Ternary Search Trees cho biết: D.D. Sleator và R.E. Tarjan mô tả các thuật toán cân bằng lý thuyết cho cây tìm kiếm bậc ba trong "Cây điều chỉnh nhị phân tự điều chỉnh" (Tạp chí ACM, tháng 7 năm 1985). Bạn có thể tìm thấy các phiên bản trực tuyến của bài báo này bằng công cụ tìm kiếm yêu thích của bạn.

0

Tổng quát cây tìm kiếm nhị phân là B-Tree, hoạt động cho các fanouts ở bất kỳ đâu từ 2 trở lên. Đó không phải là cách duy nhất để làm điều đó, nhưng đó là một cách phổ biến.

Về cơ bản, cách hoạt động là nếu chèn hoặc xóa sẽ khiến cây mất cân bằng, nó đánh cắp phần tử hoặc khoảng trống từ nút lân cận. Nếu thậm chí không đủ để giữ cho cây cân bằng, chiều cao của nó sẽ được thay đổi để nhường chỗ cho nó.

+0

Cuộc đàm phán OP về các cây tìm kiếm ** ternary **. – hmuelner

+0

Tôi không rõ ràng về cách cây 1-2 B-Tree khác với cây Ternary. Bạn có thể giải thích điều đó cho tôi không? – SingleNegationElimination

+1

Một B-Tree (thường) chứa toàn bộ các phím trong các nút. Trong cây tìm kiếm thứ ba, khóa được định nghĩa bởi đường dẫn đến nút. – hmuelner

1

đọc bài viết này:

"tự điều chỉnh của ternary tìm kiếm sẽ thử dùng Xoay có điều kiện và ngẫu nhiên Heuristics" bởi "Ghada Hany Badr * và B. John Oommen †"

nó sẽ giúp bạn để hiểu sự tự điều chỉnh và cân bằng TST.

Các vấn đề liên quan