Hãy xem xét các mảng sau đây, được tuyên bố đã đại diện cho một cây nhị phân:Binary Tree đại diện sử dụng mảng
[1, 2, 5, 6, -1, 8, 11]
Cho rằng các chỉ số có giá trị -1 cho biết phần tử gốc, tôi đã ở dưới câu hỏi:
a) Điều này thực sự được thể hiện như thế nào?
Chúng ta có nên theo công thức dưới đây (source from this link) để tìm ra cây không? Ba công thức đơn giản cho phép bạn đi từ các chỉ số phụ huynh đến các chỉ số của con của nó và ngược lại:
* if index(parent) = N, index(left child) = 2*N+1
* if index(parent) = N, index(right child) = 2*N+2
* if index(child) = N, index(parent) = (N-1)/2 (integer division with truncation)
Nếu chúng ta sử dụng công thức trên, sau đó chỉ số (root) = 3, chỉ số (con bên trái) = 7, không tồn tại.
b) Điều quan trọng là phải biết đó là cây nhị phân hoàn chỉnh hay không?
Tôi nghĩ nó cũng đáng chú ý là mẹ của nút tại chỉ số i có thể được truy cập bằng cách nhìn vào chỉ số (i-1)/2. – Saraph