Thứ hạng xếp hạng là gì trong một cây tìm kiếm nhị phân và làm thế nào nó có thể hữu ích?


8

Tôi gặp một chút rắc rối trong đầu về việc cây tìm kiếm nhị phân được xếp hạng là gì và tại sao việc có thứ hạng lại quan trọng. Tôi hy vọng rằng ai đó có thể làm rõ một vài điều cho tôi.

Những gì tôi đã xem xét:
Từ những gì tôi đã đọc, cây tìm kiếm nhị phân được xếp hạng là một cây trong đó mỗi nút có một "thứ hạng" biến được gắn vào nó.

Trong câu hỏi ở đây , một người nào đó nói rằng để xác định thứ hạng của một nút trong cây tìm kiếm nhị phân, bạn có thể làm như sau:

Bắt đầu thứ hạng ở mức 0 Khi tìm kiếm nhị phân tiếp tục từ gốc, tổng hợp kích thước của tất cả các cây con bên trái mà tìm kiếm bỏ qua. Cũng bao gồm các nút dọc theo đường dẫn ít hơn mục tìm kiếm. Đây chỉ là cha mẹ của những đứa trẻ phải trên con đường tìm kiếm.

Câu hỏi:
Thứ hạng có vẻ như chỉ là một con số phản ánh số lượng nút cần thiết (cộng với một nút cho gốc) để đến một nút cụ thể trong cây. Có đúng không? Điều đó dường như không đúng với tôi chỉ vì điều đó dường như sẽ làm cho thứ hạng của một nút giống như độ sâu của một nút.

Ngoài ra, sự khác biệt giữa "trọng lượng" và "thứ hạng" là gì? Nếu một nút trong cây tìm kiếm nhị phân cụ thể có trọng số gắn liền với nó, đó có phải chỉ là một giá trị ngẫu nhiên được gán bởi người dùng / nhà phát triển không?

Cuối cùng, điểm có thứ hạng là gì? Suy nghĩ đầu tiên của tôi là nó có thể được sử dụng để chỉ ra các ưu tiên. Tuy nhiên, trong trường hợp đó, tại sao nhà phát triển sẽ không sử dụng trọng số?

Những thứ khác:
Tôi cũng đã xem trang web ở đây . Nó giải thích cách tính thứ hạng, nhưng tôi vẫn chưa tin tôi đã hiểu khái niệm này.

Cảm ơn vì bất kì sự giúp đỡ.

Câu trả lời:


11

Theo cuốn sách này (Chương 3.2), một nút trong BST có thứ hạngk nếu chính xác kcác phím khác trong BST nhỏ hơn. Vì vậy, nếu bạn đặt hàng tất cả các nút BST theo các khóa của chúng, thì mỗi nút có thứ hạngk sẽ mất k- nơi thứ.


1

Tôi nghĩ rằng nó phụ thuộc vào việc bạn đang thực hiện xếp hạng theo kích thước hoặc theo chiều cao. Thứ hạng của một nút sử dụng liên kết xếp hạng theo kích thước có thể cho biết có bao nhiêu nút trong cây con của nút đó. Thứ hạng của một nút sử dụng liên kết xếp hạng theo chiều cao sẽ cho biết có bao nhiêu cạnh trong đường dẫn từ nút đó đến lá xa nhất trong cây con của nút đó.


0

Thêm vào câu trả lời bằng HEKTO ở trên, để tính thứ hạng trong BST với các yếu tố duy nhất,

thứ hạng của một đứa trẻ bên trái = thứ hạng của cha mẹ - 1 - số phần tử trong cây con bên phải của nó

và,

thứ hạng của một đứa trẻ bên phải = thứ hạng của cha mẹ + 1 + số phần tử trong cây con bên trái của nó.

Nó có thể được sử dụng để tìm bất kỳ chung Tôiththống kê thứ tự trong BST theo thời gian O (h), tức là thời gian O (log n) nếu cây được cân bằng. Vì vậy, rất hữu ích khi tìm trung vị của các phần tử hoặc phần tử lớn nhất / nhỏ nhất trong số các phần tử.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.