二叉树的遍历(前、中、后、层)

本文详细介绍了二叉树的前序、中序、后序和层序遍历的递归代码实现,并提供了如何根据已知两种遍历结果推算另一种遍历结果的方法,包括前序和中序求后序,以及中序和后序求前序的过程。
摘要由CSDN通过智能技术生成

二叉树代码

先展示二叉树的代码,此处的二叉树实现通过前序遍历加上补空的字符串来实现二叉树,具体代码如下:

public class Tree {
   
    TreeNode root=null;

    class TreeNode<T>{
   //自定义二叉树结点类
        T value;
        TreeNode left;
        TreeNode right;
        TreeNode(T value){
   
            this.value=value;
        }

        public T getValue() {
   
            return value;
        }

        public void setValue(T value) {
   
            this.value = value;
        }

        public TreeNode getLeft() {
   
            return left;
        }

        public void setLeft(TreeNode left) {
   
            this.left = left;
        }

        public TreeNode getRight() {
   
            return right;
        }

        public void setRight(TreeNode right) {
   
            this.right = right;
        }
    }
    class Index{
   //使遍历中i的值随递归改变
        private int index;
        public Index()
        {
   
            index = 0;
        }
        public Index(int x)
        {
   
            index = x;
        }
        int GetIndex() {
    return index;}
        void Inc() {
    index+=1;}
    }
    public TreeNode createNode(String str,Index i){
   //创建二叉树
        TreeNode s=null;
        if(str.charAt(i.GetIndex())!='#'){
   
            s=new TreeNode(str.charAt(i.GetIndex()));
            i.Inc();
            s.setLeft(createNode(str,i));
            i.Inc();
            s.setRight(createNode(str,i));
        }
        return s;
    }
    public void CreateTree(String str){
   //创建二叉树
        Index i=new Index
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值