Làm thế nào để bạn tìm thấy chiều cao của cây nhị phân trong python?
Chúng tôi được cung cấp một cây nhị phân làm đầu vào và chúng tôi cần tìm chiều cao của cây nhị phân. Nói cách khác, chúng ta được cung cấp một cây nhị phân và chúng ta cần tính độ sâu tối đa của cây nhị phân Show
Ghi chú. Chiều cao của cây nhị phân trống là -1 và chiều cao của cây nhị phân chỉ có một nút là 0 Tham khảo phần Ví dụ và Giải thích ví dụ để biết thêm chi tiết và phần Cách tiếp cận để hiểu cách tìm chiều cao của cây nhị phân Thí dụThí dụ. 1 Cây nhị phân đã cho (đầu vào) là. [5,3,6,2,4][ 5, 3, 6, 2, 4 ][5,3,6,2,4] Cây hình thành là
Giải thích ví dụTrước khi đi vào giải thích ví dụ và cách tìm chiều cao của cây nhị phân, trước tiên chúng ta hãy giới thiệu sơ qua về cây nhị phân và chiều cao của cây nhị phân Cây nhị phân có thể được định nghĩa là một tập hợp các đối tượng hoặc phần tử hoặc thực thể được gọi là nút. Các nút này được liên kết với nhau để thể hiện một hệ thống phân cấp. Nút trên cùng của hệ thống phân cấp được gọi là nút gốc. Mỗi nút của cây nhị phân chứa một số dữ liệu và nó có thể có nhiều nhất hai nút con. Nút gốc không bao giờ có nút cha. Các nút không có nút con gọi là nút lá Thí dụ Bây giờ, chiều cao của cây nhị phân nhiều hơn số cạnh lớn nhất trong đường dẫn từ nút gốc đến nút lá cấp thấp nhất là một Nói cách khác, chúng ta có thể nói rằng chiều cao của cây nhị phân là chiều cao của nút gốc trong toàn bộ cây nhị phân trong ví dụ
Hạn chế
Trong một số bài toán, bạn có thể thấy số ca kiểm thử được biểu thị bằng t. Vì vậy, chúng ta chỉ cần gọi hàm findHeight() t -times Cách tiếp cận 1. Sử dụng đệ quyChúng ta có thể dễ dàng tính toán chiều cao của cây nhị phân bằng cách sử dụng đệ quy. Ý tưởng rất đơn giản, chúng ta sẽ tính chiều cao của level hiện tại, và gọi đệ quy hàm findHeight() cho cây con bên trái và cây con bên phải (nếu chúng tồn tại) Bây giờ, chiều cao của mức hiện tại sẽ là chiều cao tối đa của cây con bên trái và chiều cao của cây con bên phải. Vì vậy, hàm đệ quy sẽ cung cấp chiều cao của cây con bên trái và cây con bên phải và chúng ta sẽ gán chiều cao của nút hiện tại là chiều cao lớn nhất của chúng Chúng tôi đệ quy cây con trái và cây con phải vì một nút có thể có con trái hoặc con phải hoặc cả hai. Tham khảo mã giả để hiểu rõ hơn về thuật toán đệ quy tìm chiều cao của cây nhị phân thuật toánMã giả cho cùng
Triển khai mãHãy để chúng tôi triển khai mã giống nhau bằng các ngôn ngữ khác nhau Mã C++
Cách tiếp cận 2. Tìm kiếm đầu tiên trên bánh mì (BFS) hoặc Truyền tải thứ tự cấp độ của cây nhị phânMột cách tiếp cận khác để tìm chiều cao của cây nhị phân là thực hiện Tìm kiếm đầu tiên trên bánh mì (BFS) hoặc duyệt theo thứ tự cấp độ của cây nhị phân. Chúng tôi sẽ tiếp tục tăng chiều cao khi chúng tôi tiến lên cấp độ tiếp theo. Để thực hiện duyệt thứ tự cấp độ, chúng ta cần sử dụng cấu trúc dữ liệu hàng đợi Ý tưởng khá đơn giản, chúng ta sẽ lấy một hàng đợi và chèn nút gốc vào đó và khởi tạo một biến chiều cao. Bây giờ, chúng tôi sẽ xóa một nút khỏi hàng đợi (dequeue) và khám phá nút con bên trái và bên phải của nó, sau khi khám phá, chúng tôi sẽ tăng bộ đếm chiều cao lên một nút vì mỗi lần khám phá biểu thị rằng cấp độ hiện tại đã hoàn thành và chúng tôi nên chuyển sang cấp độ tiếp theo Ghi chú. Cách tìm chiều cao của cây nhị phân theo thứ tự cấp độ còn được gọi là cách lặp Tham khảo mã giả được cung cấp bên dưới để hiểu rõ hơn thuật toánMã giả cho cùng
Triển khai mãHãy để chúng tôi triển khai mã giống nhau bằng các ngôn ngữ khác nhau Mã C++
Sự kết luận
|