樹狀結構是一種非常常見的數據結構。在許多應用程序中,我們需要以樹狀結構的方式來組織和顯示數據。例如,企業組織結構和人員管理系統。在本文中,我們將介紹如何使用Java實現樹狀結構展示組織和人員。
首先,我們定義一個樹節點類,用于表示每個節點的信息,包括節點ID、父節點ID、節點名稱、以及該節點下的子節點列表。以下是節點類的代碼:
public class TreeNode { private int nodeId; private int parentId; private String nodeName; private List<TreeNode> children; // 構造函數、getter和setter方法省略 }
接下來,我們需要將節點按照父子關系構建出樹形結構。我們可以使用一個遞歸函數來實現這一過程。以下是構建樹形結構的代碼:
public static TreeNode buildTree(List<TreeNode> nodes) { if (nodes == null || nodes.size() == 0) { return null; } // 構建根節點 TreeNode rootNode = null; for (TreeNode node : nodes) { if (node.getParentId() == 0) { rootNode = node; break; } } // 遞歸構建子節點 buildChildren(rootNode, nodes); return rootNode; } private static void buildChildren(TreeNode parentNode, List<TreeNode> nodes) { for (TreeNode node : nodes) { if (node.getParentId() == parentNode.getNodeId()) { if (parentNode.getChildren() == null) { parentNode.setChildren(new ArrayList<TreeNode>()); } parentNode.getChildren().add(node); buildChildren(node, nodes); } } }
最后,我們可以通過遍歷樹形結構來展示組織和人員信息。以下是展示樹形結構的代碼:
public static void displayTree(TreeNode rootNode, int level) { if (rootNode == null) { return; } StringBuilder sb = new StringBuilder(); for (int i = 0; i < level; i++) { sb.append("-"); } sb.append(rootNode.getNodeName()); System.out.println(sb.toString()); if (rootNode.getChildren() != null) { for (TreeNode node : rootNode.getChildren()) { displayTree(node, level + 1); } } }
至此,我們就成功地用Java實現了樹狀結構展示組織和人員的功能。通過上述代碼,我們可以輕松地構建和顯示樹形結構,以達到清晰明了的組織和人員管理效果。