2011-12-10 37 views

Trả lời

6
  • Hãy x là nút khởi động và z là nút kết thúc sau k cuộc gọi liên tiếp để TREE-NGƯỜI KẾ.
  • Hãy để p là đường dẫn đơn giản giữa xz bao gồm.
  • Hãy để y là tổ tiên chung của xz rằng lượt truy cập p.
  • Độ dài p tối đa là 2h, là O(h).
  • Cho phép output là các phần tử mà giá trị của chúng nằm trong khoảng từ x.key đến z.key.
  • Kích thước của outputO(k).
  • Trong việc thực hiện các k cuộc gọi liên tiếp để TREE-NGƯỜI KẾ, các nút có trong p đang truy cập, và bên cạnh các nút x, yz, nếu một cây con của một nút trong p được truy cập sau đó tất cả các phần tử của nó nằm trong output.
  • Vì vậy, thời gian chạy là O(h+k).
+2

'Trong việc thực hiện các cuộc gọi liên tiếp tới TREE-SUCCESSOR, các nút trong p được truy cập, và bên cạnh các nút x, y và z' Bạn có thể giải thích' y' ở đây là gì không? –

+0

Tôi đã thêm 'y' vào câu trả lời. –

3

Gợi ý: làm việc ra một ví dụ nhỏ, quan sát kết quả, cố gắng ngoại suy lý do.

Để bắt đầu, dưới đây là một số điều cần xem xét.

Bắt đầu tại một nút nhất định, k cuộc gọi thành công đến Tree-Succcesor consititutes đi bộ một phần cây. Có bao nhiêu nút (ít nhất và nhiều nhất) các lượt truy cập đi bộ này? (Gợi ý: Hãy suy nghĩ về khóa (x)). Hãy nhớ rằng một cạnh được truy cập nhiều nhất hai lần (tại sao?).

Gợi ý cuối cùng: Kết quả là O(2h+k).

+1

Nút được truy cập nhiều nhất ba lần. –

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