Tôi đang gặp khó khăn trong việc hiểu cách cây tìm kiếm nhị phân được xây dựng. Họ có yêu cầu dữ liệu ban đầu được sắp xếp để tìm ra gốc cao nhất?Tìm hiểu về cấu trúc cây tìm kiếm nhị phân
Trả lời
Hình dạng một cây tìm kiếm nhị phân có phụ thuộc vào hai điều:
- Thứ tự mà các yếu tố được chèn, và
- hoạt động cân bằng gì, nếu có, cây làm trong suốt chèn.
Nếu bạn có cây tìm kiếm nhị phân thuần túy không có logic cân bằng lại, thứ tự các yếu tố được chèn vào sẽ có tác động mạnh đến hình dạng của cây. Ví dụ: lấy các giá trị 1, 2, 3, 4, 5, 6, 7. Nếu bạn chèn chúng vào thứ tự 4, 2, 6, 1, 3, 5, 7, bạn sẽ nhận được cây này:
4
/ \
2 6
/\ /\
1 3 5 7
lý do cho điều này là chúng ta đi qua hàng loạt sau của cây:
4
4
/
2
4
/ \
2 6
4
/ \
2 6
/
1
4
/ \
2 6
/\
1 3
4
/ \
2 6
/\ /
1 3 5
4
/ \
2 6
/\ /\
1 3 5 7
Mặt khác, nếu bạn chèn các giá trị theo thứ tự 1, 2, 3, 4, 5, 6 , 7, bạn sẽ có được cây này:
1
\
2
\
3
\
4
\
5
\
6
\
7
Thú vị, chèn các phần tử vào BST theo thứ tự sắp xếp là o ne của các tồi tệ nhất những điều bạn có thể làm cho cây, vì nó làm cho cây cấu trúc tuyến tính. Bạn đang tốt hơn chọn một hoán vị ngẫu nhiên của các yếu tố để chèn, hoặc (nếu tất cả chúng được biết đến trước) phân loại chúng và sử dụng các thuật toán đệ quy sau đây về trình tự sắp xếp:
- Nếu không có các yếu tố, Bạn xong việc rồi.
- Nếu không:
- Chèn trung vị vào BST.
- Đệ quy chèn nửa phần tử đầu tiên vào BST.
- Đệ quy chèn nửa sau của các phần tử vào BST.
Hy vọng điều này sẽ hữu ích!
- 1. Cây tìm kiếm nhị phân đệ quy
- 2. Cây tìm kiếm nhị phân trên cây AVL
- 3. Cây tìm kiếm nhị phân cân bằng hoàn hảo
- 4. đại diện cho cây tìm kiếm nhị phân trong python
- 5. Xây dựng cây tìm kiếm nhị phân cân bằng
- 6. Cây tìm kiếm nhị phân tích hợp trong Python?
- 7. Tìm kiếm nhị phân Cây C thực hiện
- 8. Tìm kiếm nhị phân không phân nhánh
- 9. Tìm đường dẫn trong cây tìm kiếm nhị phân tổng hợp thành giá trị đích
- 10. Sự khác nhau giữa cây tìm kiếm và cây nhị phân hiệu quả là gì?
- 11. kiểm tra xem cây có phải là cây tìm kiếm nhị phân không
- 12. Tìm kiếm nhị phân chung trong C#
- 13. Tính trung trong tìm kiếm nhị phân
- 14. javascript triển khai thực hiện tìm kiếm nhị phân javascript
- 15. Cấu trúc dữ liệu quan trọng trong tìm kiếm
- 16. Cây nhị phân tìm kiếm cân bằng ― chỉ lưu trữ dữ liệu trong lá
- 17. Python: Tìm kiếm/đọc dữ liệu nhị phân
- 18. Thứ tự cấp bậc in Tìm kiếm nhị phân Định dạng cây
- 19. Tìm kiếm nhị phân đệ quy Cây x = thay đổi (x)
- 20. hiệu suất tìm kiếm nhị phân so với hiệu quả tìm kiếm tuyến tính trong fortran
- 21. Tìm kiếm chuỗi nhị phân - chiều rộng thùng tối thiểu?
- 22. Chuyển cây nhị phân
- 23. Số cây tìm kiếm nhị phân trên n thành phần riêng biệt
- 24. Làm cách nào để chứng minh hoạt động này trên cây tìm kiếm nhị phân?
- 25. Tìm kiếm đệ quy cho một nút trong cây không phải nhị phân
- 26. Java: Làm thế nào để thực hiện một cây tìm kiếm nhị phân chung?
- 27. Tìm thư viện java đã triển khai Cây nhị phân
- 28. Cây nhị phân từ cây chung
- 29. Tìm hiểu về Traceview
- 30. Tìm kiếm nhanh hơn tìm kiếm nhị phân cho danh sách có thứ tự
"Chèn trung vị vào BST". Vì vậy, để có giá trị trung bình, tôi sẽ phải có dữ liệu tuyến tính của mình theo thứ tự đầu tiên, vì vậy, như 5,3,6,2,4,1 sẽ phải được sắp xếp lại thành 1,2,3,4,5 , 6 và sau đó 4 sẽ là gốc? –
@ GeorgeL- Tôi không chắc tôi hiểu nhận xét của bạn. Bạn có thể làm rõ? – templatetypedef
Rất tiếc, không nhận ra nhấn enter sẽ gửi nhận xét. –