根据先序和中序构建二叉树(java)后序输出

Posted 邢兵

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了根据先序和中序构建二叉树(java)后序输出相关的知识,希望对你有一定的参考价值。

先序序列:   1,2,4,8,5,3,6,7


中序序列:   8,4,2,5,1,6,3,7

//节点类

/**
 * 
 */
package Tree;

/**
 * @author 邢兵
 * @data
 * @description
 */
public class Node {
	public Object data;
	public Node left;
	public Node right;
	
	//创建一个空节点
	public Node(){
		this(null);
	}
	//创建一个没有孩子的节点
	public Node(Object data){
		this(data, null, null);
	}
	//创建一个 带有孩子的节点
	public Node(Object data, Node left, Node right){
		this.data = data;
		this.left = left;
		this.right = right;
	}
}



/**
 * 
 */
package Tree;

/**
 * @author 邢兵
 * @data
 * @description
 */
public class BiTree {
	public static int index=0;
	public static void main(String[] args) {
		int pre[]={1,2,4,8,5,3,6,7};//先序排列
		int in[] = {8,4,2,5,1,6,3,7};//中序排列
		Node root = build(0, pre.length-1, pre, in);
		post(root);
	}
	public static Node build(int left, int right, int preorder[], int inorder[]){
		Node root = null;
		if(left<=right){
			int in = left;
			for(int i=in;i<=right;i++){
				if(inorder[i]==preorder[index]){
					in = i;
					break;
				}
				
			}
			root = new Node(preorder[index]);
			index++;
			root.left = build(left, in-1, preorder, inorder);
			root.right = build(in+1, right, preorder, inorder);
			
		}
		return root;
	}
	public static void post(Node root){
		if(root!=null){
			post(root.left);
			post(root.right);
			System.out.print(root.data);
		}
	}
}

  

以上是关于根据先序和中序构建二叉树(java)后序输出的主要内容,如果未能解决你的问题,请参考以下文章

根据先序和中序实现后序

根据后序和中序遍历输出先序遍历

PTA 根据后序和中序遍历输出先序遍历(25 分)

数据结构/PTA-据后序和中序遍历输出先序遍历/树

数据结构树 —— 编程作业 04 :根据后序和中序遍历输出先序遍历

给出二叉树的先序和中序遍历,给出后序遍历