Rumah >Java >javaTutorial >Bagaimana untuk Mencetak Pokok Binari dalam Bentuk Hierarki di Jawa?

Bagaimana untuk Mencetak Pokok Binari dalam Bentuk Hierarki di Jawa?

DDD
DDDasal
2024-11-10 17:25:02323semak imbas

How to Print a Binary Tree in Hierarchical Form in Java?

Cetak Pokok Binari Hierarki di Jawa

Untuk mencetak pokok binari, menunjukkan struktur hierarkinya dalam perwakilan teks, anda boleh menggunakan Builder corak. Corak ini membolehkan anda membina output seperti pepohon secara berperingkat.

Satu pendekatan ialah mencipta kelas TreeNode tersuai yang mewakili setiap nod dalam pepohon:

public class TreeNode<A extends Comparable> {
    TreeNode<A> left, right;
    A data;
}

Untuk mencetak pepohon, anda boleh menggunakan fungsi pembantu rekursif yang membina perwakilan rentetan pepohon:

public String toString() {
    StringBuilder builder = new StringBuilder();
    print(builder, "", "");
    return builder.toString();
}

private void print(StringBuilder builder, String prefix, String childrenPrefix) {
    builder.append(prefix).append(data).append('\n');
    if (left != null) {
        left.print(builder, childrenPrefix + "├── ", childrenPrefix + "│   ");
    }
    if (right != null) {
        right.print(builder, childrenPrefix + "└── ", childrenPrefix + "    ");
    }
}

Di sini, awalan mewakili awalan untuk nod semasa, dan childrenPrefix mewakili awalan untuk anak-anaknya. Fungsi ini secara rekursif mencetak setiap kanak-kanak dengan lekukan awalan yang sesuai.

Dengan memanggil toString() pada nod akar, anda boleh mendapatkan perwakilan hierarki keseluruhan pepohon:

TreeNode<Integer> root = new TreeNode<>(4);
root.left = new TreeNode<>(2);
root.right = new TreeNode<>(5);
System.out.println(root.toString());

Ini akan keluaran:

4
├── 2
└── 5

Atas ialah kandungan terperinci Bagaimana untuk Mencetak Pokok Binari dalam Bentuk Hierarki di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn