public class TreeTest {
static class TreeNode{
public String data;//数据
public TreeNode lChild;//左孩子
public TreeNode rChild;//右孩子
};
/**
* @Title: main
* @Description: TODO(这里用一句话描述这个方法的作用)
* @param @param args 设定文件
* @return void 返回类型
* @throws
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
TreeNode root = new TreeNode();
root.data = "0";
createTree(root);
System.out.println("前根遍历");
preOrder(root);
System.out.println("中根遍历");
midOrder(root);
System.out.println("后根遍历");
LatOrder(root);
}
public static void createTree(TreeNode node) {
String data = node.data;
if(data.length()<=2){
// System.out.println("createing!!");
TreeNode lNode = new TreeNode();
node.lChild = lNode;
lNode.data = data+"1";
createTree(lNode);
TreeNode rNode = new TreeNode();
node.rChild = rNode;
rNode.data = data+"2";
createTree(rNode);
}
}
//前根遍历
public static void preOrder(TreeNode node){
if(null != node){
System.out.println(node.data);
preOrder(node.lChild);
preOrder(node.rChild);
}
}
//中根遍历
public static void midOrder(TreeNode node){
if(null != node) {
midOrder(node.lChild);
System.out.println(node.data);
midOrder(node.rChild);
}
}
//后根遍历
public static void LatOrder(TreeNode node){
if(null != node) {
LatOrder(node.lChild);
LatOrder(node.rChild);
System.out.println(node.data);
}
}
}
二叉树的遍历
最新推荐文章于 2024-10-21 08:57:50 发布