二叉树的遍历

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);
		}
	}
	

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值