/**
* 二叉树前序、中序、后序遍历
* 所谓前、中、后序遍历, 区别主旨关注在根节点的输出时机
* 前序:最早
* 中序:其次
* 后序:最晚
* 即:代码中sysout输出语句的顺序。
*/
class BinaryTree1{
private HeroNode1 node;
public void preOrder() {
if( node != null ) {
this.node.preOrder();
}else{
System.out.println( "二叉树为空,无法遍历" );
}
}
public void infixOrder() {
if( node !=null ) {
this.node.infixOrder();
}else{
System.out.println( "二叉树为空,无法遍历" );
}
}
public void postOrder() {
if( node !=null ) {
this.node.postOrder();
}else{
System.out.println( "二叉树为空,无法遍历" );
}
}
}
class HeroNode1{
private int num;
private String name;
private HeroNode1 left;
private HeroNode1 right;
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public HeroNode1 getLeft() {
return left;
}
public void setLeft(HeroNode1 left) {
this.left = left;
}
public HeroNode1 getRight() {
return right;
}
public void setRight(HeroNode1 right) {
this.right = right;
}
@Override
public String toString() {
return "HeroNode1 [num=" + num + ", name=" + name + "]";
}
//前序遍历
public void preOrder() {
System.out.println( this );
if( this.left !=null ) {
this.left.preOrder();
}
if( this.right !=null ) {
this.right.preOrder();
}
}
//中序遍历
public void infixOrder() {
if( this.left !=null ) {
this.left.infixOrder();
}
System.out.println( this );
if( this.right !=null ) {
this.right.infixOrder();
}
}
//后序遍历
public void postOrder() {
if( this.left !=null ) {
this.left.postOrder();
}
if( this.right !=null ) {
this.right.postOrder();
}
System.out.println( this );
}
}
【java】【二叉树】【前序、中序、后序遍历】
最新推荐文章于 2024-07-28 17:42:24 发布