java怎么實(shí)現(xiàn)樹結(jié)構(gòu)的輸出

小億
134
2024-01-26 22:10:04
欄目: 編程語言

Java中可以使用遞歸的方式來實(shí)現(xiàn)樹結(jié)構(gòu)的輸出。

首先,需要?jiǎng)?chuàng)建一個(gè)表示樹節(jié)點(diǎn)的類,該類包含一個(gè)數(shù)據(jù)域和一個(gè)指向子節(jié)點(diǎn)的列表或數(shù)組。假設(shè)樹節(jié)點(diǎn)的類為TreeNode,包含一個(gè)int類型的數(shù)據(jù)域和一個(gè)List類型的子節(jié)點(diǎn)列表。

然后,可以使用遞歸的方式來遍歷并輸出樹的結(jié)構(gòu)。具體的步驟如下:

  1. 創(chuàng)建一個(gè)方法,用于遞歸遍歷樹節(jié)點(diǎn)并輸出節(jié)點(diǎn)的數(shù)據(jù)域。

    private static void printTree(TreeNode node, String prefix, boolean isTail) {
        System.out.println(prefix + (isTail ? "└── " : "├── ") + node.getData());
        List<TreeNode> children = node.getChildren();
        for (int i = 0; i < children.size() - 1; i++) {
            printTree(children.get(i), prefix + (isTail ? "    " : "│   "), false);
        }
        if (children.size() > 0) {
            printTree(children.get(children.size() - 1), prefix + (isTail ?"    " : "│   "), true);
        }
    }
    
  2. 在主程序中創(chuàng)建一個(gè)樹,并傳入根節(jié)點(diǎn)和空字符串作為參數(shù)調(diào)用上述方法進(jìn)行輸出。

    public static void main(String[] args) {
        TreeNode root = new TreeNode(1);
        TreeNode child1 = new TreeNode(2);
        TreeNode child2 = new TreeNode(3);
        TreeNode child3 = new TreeNode(4);
        TreeNode child4 = new TreeNode(5);
        root.addChild(child1);
        root.addChild(child2);
        child1.addChild(child3);
        child1.addChild(child4);
    
        printTree(root, "", true);
    }
    

運(yùn)行程序,就可以看到樹結(jié)構(gòu)的輸出結(jié)果。

└── 1
    ├── 2
    │   ├── 4
    │   └── 5
    └── 3

這樣就實(shí)現(xiàn)了樹結(jié)構(gòu)的輸出。

0