色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

java樹狀結(jié)構(gòu)展示組織和人員

吳曉飛1年前6瀏覽0評論

樹狀結(jié)構(gòu)是一種非常常見的數(shù)據(jù)結(jié)構(gòu)。在許多應(yīng)用程序中,我們需要以樹狀結(jié)構(gòu)的方式來組織和顯示數(shù)據(jù)。例如,企業(yè)組織結(jié)構(gòu)和人員管理系統(tǒng)。在本文中,我們將介紹如何使用Java實現(xiàn)樹狀結(jié)構(gòu)展示組織和人員。

首先,我們定義一個樹節(jié)點類,用于表示每個節(jié)點的信息,包括節(jié)點ID、父節(jié)點ID、節(jié)點名稱、以及該節(jié)點下的子節(jié)點列表。以下是節(jié)點類的代碼:

public class TreeNode {
private int nodeId;
private int parentId;
private String nodeName;
private List<TreeNode> children;
// 構(gòu)造函數(shù)、getter和setter方法省略
}

接下來,我們需要將節(jié)點按照父子關(guān)系構(gòu)建出樹形結(jié)構(gòu)。我們可以使用一個遞歸函數(shù)來實現(xiàn)這一過程。以下是構(gòu)建樹形結(jié)構(gòu)的代碼:

public static TreeNode buildTree(List<TreeNode> nodes) {
if (nodes == null || nodes.size() == 0) {
return null;
}
// 構(gòu)建根節(jié)點
TreeNode rootNode = null;
for (TreeNode node : nodes) {
if (node.getParentId() == 0) {
rootNode = node;
break;
}
}
// 遞歸構(gòu)建子節(jié)點
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);
}
}
}

最后,我們可以通過遍歷樹形結(jié)構(gòu)來展示組織和人員信息。以下是展示樹形結(jié)構(gòu)的代碼:

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實現(xiàn)了樹狀結(jié)構(gòu)展示組織和人員的功能。通過上述代碼,我們可以輕松地構(gòu)建和顯示樹形結(jié)構(gòu),以達到清晰明了的組織和人員管理效果。