Java学习手册:(数据结构与算法-二叉树)已知先序遍历和中序遍历,如何求后序遍历?

算法思想:已知先序遍历和中序遍历,如何求后序遍历?(1)确定树的根结点。树根是当前树中所有元素在先序遍历中最先出现的元素,即先序遍历的第一个结点就是二叉树的根。(2)求解树的子树。找到根在中序遍历的位置,位置左边是二叉树的左孩子,位置右边是二叉树的右孩子,如果根结点左边或右边为空,那么该方向子树为空;如果根结点左边和右边都为空,那么根结点已经成为叶子结点。(3)对二叉树的左、右孩子分别进行步骤(1)(2),直到求出二叉树结构为止。

代码如下:

package com.haobi;
/*
 * 已知先序遍历和中序遍历,如何求后序遍历?
 * 
 * (1)确定树的根结点。树根是当前树中所有元素在先序遍历中最先出现的元素,即先序遍历的第一个结点就是二叉树的根。
 * (2)求解树的子树。找到根在中序遍历的位置,位置左边是二叉树的左孩子,位置右边是二叉树的右孩子,
 * 	      如果根结点左边或右边为空,那么该方向子树为空;如果根结点左边和右边都为空,那么根结点已经成为叶子结点。
 * (3)对二叉树的左、右孩子分别进行步骤(1)(2),直到求出二叉树结构为止。
 */
//定义结点结构
class Node3{
	public int data;
	public Node3 left;
	public Node3 right;
	public Node3(int data) {
		this.data = data;
		this.left = null;
		this.right = null;
	}
	public Node3() {}
}

public class Test3 {
	//定义根结点
	private Node3 root;
	//构造方法
	public Test3() {
		root 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值