java二叉树的遍历

三种方式遍历:

先构建一颗二叉树:

package com.sec.t31;

public class TreeNode   {

 
 private  TreeNode leftNode;  //左节点
 private  TreeNode rightNode;//右节点
 private  String  data;//数据
 
 public TreeNode(String data){
 this.data=data;
 
 }
 
 
 public TreeNode(String data,TreeNode leftNode,TreeNode rightNode){
  
  this.data=data;
  this.leftNode=leftNode;
  this.rightNode=rightNode;
  
 }
  public TreeNode  getLeftNode() {
  return leftNode;
 }


 public void setLeftNode(TreeNode leftNode) {
  this.leftNode = leftNode;
 }


 public TreeNode getRightNode() {
  return rightNode;
 }


 public void setRightNode(TreeNode rightNode) {
  this.rightNode = rightNode;
 }


 public String getData() {
  return data;
 }


 public void setData(String data) {
  this.data = data;
 }
 
 
}

写出三种查询到方式:

package com.sec.t31;

public class TreeQuery {

 private TreeNode node;
 
 public TreeQuery( TreeNode node){
  this.node=node;
 
 }
 
 public  static void dayin(String data){
  
  System.out.println(data);
 }
 public void xianxu(TreeNode node){
  if(node==null){
   return;
  }
  dayin(node.getData());
  xianxu(node.getLeftNode());
  xianxu(node.getRightNode());
  
 }
 
 public void  zhongxu(TreeNode node) {
  if(node==null)
   return;
  zhongxu(node.getLeftNode());
  dayin(node.getData());
  zhongxu(node.getRightNode());
 }
 public void houxu (TreeNode node) {
  if(node==null)
   return;
  houxu(node.getLeftNode());
  houxu(node.getRightNode());
  dayin(node.getData());
 }

 public static void main(String[] args) {
  TreeNode a6=new TreeNode("数据6", null, null);
  TreeNode a7=new TreeNode("数据7", null, null);
  TreeNode a8=new TreeNode("数据8", null, null);
  TreeNode a9=new TreeNode("数据9", null, null);
  TreeNode a10=new TreeNode("数据10", null, null);
  TreeNode a5=new TreeNode("数据5", a10, null);
  TreeNode a3=new TreeNode("数据3", a6, a7);
  TreeNode a4=new TreeNode("数据4", a8, a9);
  TreeNode a2=new TreeNode("数据2", a4, a5);
  TreeNode a1=new TreeNode("数据1", a2, a3);
  
  TreeQuery tq=new TreeQuery(a1);
  
  tq.houxu(a1);
 }
}

 

先序遍历:

假设一颗树的完整按照顺序产生,那么这颗树的先序遍历则是啊a1,a2,a3,a4,a9,

数据1
数据2
数据4
数据8
数据9
数据5
数据10
数据3
数据6
数据7

 

中序遍历:

 

 

后序遍历:


 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值