树(Tree)是非线性结构的典型代表。在树型数据结构中,数据元素之间存在一对多的关系。在数据结构中,对树的定义是:树是由n(n>0)个有限结点组成一个具有层次关系的集合。当n=0时,称为空树。
package com.gientech.atp.util;
import java.util.ArrayList;
import java.util.List;
public class TreeNode {
String value;
List<TreeNode> children;
public TreeNode(String value) {
this.value = value;
this.children = new ArrayList<>();
}
public void addChild(TreeNode child) {
this.children.add(child);
}
}
class TreeTraversal {
public static void depthFirstTraversal(TreeNode node) {
if (node == null) {
return;
}
System.out.println(node.value);
for (TreeNode child : node.children) {
depthFirstTraversal(child);
}
}
public static void main(String[] args) {
TreeNode root = new TreeNode("A");
TreeNode nodeB = new TreeNode("B");
TreeNode nodeC = new TreeNode("C");
TreeNode nodeD = new TreeNode("D");
TreeNode nodeE = new TreeNode("E");
root.addChild(nodeB);
root.addChild(nodeC);
nodeB.addChild(nodeD);
nodeB.addChild(nodeE);
depthFirstTraversal(root);
}
}
一个简单的树结构类 TreeNode
和一个用于深度优先遍历的方法 depthFirstTraversal
。