Artikel ini menjelaskan metode Java untuk mencetak semua jalur pohon biner. Bagikan untuk referensi Anda, sebagai berikut:
pertanyaan:
Berikan pohon biner dan cetak semua jalur.
Misalnya, untuk pohon biner berikut, semua jalannya adalah:
8 -> 3 -> 1
8 -> 2 -> 6 -> 4
8 -> 3 -> 6 -> 7
8 -> 10 -> 14 -> 13
Ide:
Mulai dari simpul root, masukkan nilai Anda sendiri dalam array, dan kemudian berikan array ini ke simpul anaknya. Node anak juga menempatkan nilainya sendiri dalam array ini, dan meneruskannya ke simpul anaknya sampai simpul ini adalah simpul daun, dan kemudian mencetak array. Jadi, kita perlu menggunakan rekursi di sini.
Kode:
/** Diberi pohon biner, mencetak semua root-to-leafpaths, satu per baris. Menggunakan helper rekursif untuk melakukan pekerjaan.*/Public void printPaths (node root, int n) {string [] path = string baru [n]; PrintPaths (root, path, 0);}/** Helper printpaths rekursif-diberi simpul, dan array yang berisi jalur dari simpul root hingga tetapi tidak termasuk simpul ini, mencetak semua jalur daun root. // Tambahkan simpul ini ke jalur array path [pathlen ++] = node.value; // Ini daun, jadi cetak jalur yang mengarah ke sini jika (node.leftchild == null && node.rightchild == null) {printarray (path, pathlen); } else {// jika tidak coba kedua subtrees printPaths (node.leftchild, path, pathlen); printpaths (node.rightchild, path, pathlen); }}/** Utilitas yang mencetak string dari array pada satu baris.*/Private void printarray (string [] ints, int len) {for (int i = 0; i <len; i ++) {System.out.print (ints [i]+""); } System.out.println ();}Catatan: Anda hanya dapat menggunakan array + nilai untuk mencetak jalur yang diperlukan. Jika Anda menggunakan struktur daftar tertaut seperti LinkedList, itu tidak akan berfungsi. Layak menganalisis alasannya, sangat menarik.
Untuk informasi lebih lanjut tentang algoritma java, pembaca yang tertarik dengan situs ini dapat melihat topik: "struktur data java dan tutorial algoritma", "ringkasan tips node dom java", "ringkasan file operasi java dan direktori" dan "ringkasan tip operasi java cache" tips java "tips java" Tips "Java Cache Tips"
Saya harap artikel ini akan membantu pemrograman Java semua orang.