menjelaskan:
Kedalaman pohon biner: jalur ke pohon terbentuk dari simpul akar ke simpul (termasuk akar dan simpul daun) yang dilewati oleh simpul daun pada gilirannya. Panjang jalan terpanjang adalah kedalaman pohon.
Lebar pohon biner: Setiap lapisan pohon biner memiliki sejumlah node. Jumlah node di lapisan dengan jumlah node terbesar disebut lebar pohon biner.
Ide: Implementasi Rekursif.
1. Setiap node dapat dianggap sebagai node root
2. Kedalaman simpul root (simpul apa pun) sama dengan kedalaman subtree kiri atau kanan maksimum +1
3. Mulai melintasi dari node root. Jika Anda melintasi ke simpul daun, kedalamannya adalah 0
// Kedalaman Pohon Biner Statis Public Static Int (Node Root) {if (root == null) {return 0; } int dl = kedalaman (root.LeftChild); int dr = kedalaman (root.rightchild); mengembalikan dl> dr? dl+1: dr+1; }2. Lebar pohon biner
Ide: Tambahkan penghitung selama traversal urutan lapisan untuk merekam jumlah node di setiap lapisan
1. Ketika setiap lapisan keluar dari antrian, jumlah node di lapisan berikutnya sebenarnya adalah ukuran () dari antrian.
2. Di akhir setiap traversal lapisan, bandingkan lebar maksimum dengan jumlah node saat ini dan catat nilai maksimum.
Public Static Int Width (node root) {if (root == null) return 0; queue <node> q = new LinkedList <node> (); q.add (root); int width = 1; // width maksimum int len = 1; // jumlah node saat ini pada lapisan sementara (q.size ()> 0) {node () {node () {node (q.size () {node () {node {node {{q.size> q.poll (); if (node.LeftChild! = null) {q.add (node.LeftChild);} if (node.rightchild! = null) {q.add (node.rightchild);} len nOLESE NODE (); // Setelah setiap loop loop, lene nOPE NOUDE (); lebar: q.size ();} return width;}Meringkaskan
Di atas adalah semua tentang deskripsi bahasa Java tentang kedalaman dan lebar pohon biner. Saya harap ini akan membantu semua orang. Jika ada kekurangan, silakan tinggalkan pesan untuk menunjukkannya. Terima kasih teman atas dukungan Anda untuk situs ini!