文档章节

二叉树

凯尔特Queen
 凯尔特Queen
发布于 2014/10/06 18:11
字数 255
阅读 15
收藏 0
定义二叉树
package tree;
public class BinaryTree {
  int data;//根节点
 public BinaryTree left;//左节点
 public BinaryTree right;//右节点
 public BinaryTree(int data)
 {
  this.data=data;
  this.left=null;
  this.right=null;
 }
 public BinaryTree()
 {
  
 }
 //创建二叉树
 //左子树上的数字都大于根节点,而右节点上的数字均小于根节点
 public BinaryTree insert(BinaryTree root,int data)
 {   
  if(data>root.data)
  {
   if(root.right==null)
   {
    root.right=new BinaryTree(data);
   }
   else
   {
    this.insert(root.right,data);
   }
  }
  else
  {
   if(root.left==null)
   {
    root.left=new BinaryTree(data);
   }
   else
   {
    this.insert(root.left, data);
   }
  }
  return null;
  
 }
 
} 
二叉树的遍历算法 
 public static void preOrder(BinaryTree root)

 {  

     //BinaryTree bt=new BinaryTree();

  if(root!=null)

  {

   System.out.print(root.data+"  ");

   preOrder(root.left);

   preOrder(root.right);

  }

  

 }

 //中序排列

    public static void middleOrder(BinaryTree root)

    {  

     if(root!=null)

     {   

      middleOrder(root.left);

      System.out.print(root.data+"  ");

      middleOrder(root.right);

     }
    }

    //后序排列

    public static void lastOrder(BinaryTree root)

    {

     if(root!=null)

     {

      lastOrder(root.left);

      lastOrder(root.right);

      System.out.print(root.data+"  ");
     }

    }
//测试二叉树遍历 
public static void main(String []args)

 {  

  int []binary={12,76,35,22,16,48,90,46,9,40};

  BinaryTree root=new BinaryTree( binary[0]);

  for(int i=1;i<binary.length;i++)

  {

   root.insert(root, binary[i]);

  }

  System.out.println("先序排序后的结果为:");

     preOrder(root);

     System.out.println("");

     System.out.println("中序排序后的结果为:");

     middleOrder(root);

     System.out.println("");

     System.out.println("后序排序后的结果为:");

     lastOrder(root);

 }

© 著作权归作者所有

共有 人打赏支持
凯尔特Queen
粉丝 40
博文 24
码字总数 6242
作品 0
浦东
程序员
私信 提问
加载中

评论(1)

优雅先生
优雅先生
13
数据结构-二叉树的存储结构与遍历

定义 一个有穷的结点集合,可以为空。若不为空,则它是由根结点和称为其左子树和右子树的两个互不相交的二叉树组成。 二叉树的五种基本形态: tree_state 二叉树的子树是有顺序之分的,称为左...

IAM四十二
2017/10/24
0
0
数据结构——二叉树的定义和性质

获取更多精彩内容,您还可以关注我的微信公众号——Android机动车。 在一些电视节目中,会猜测商品价格,有的人是一点一点的数字累加,这样的策略效率太低了。其实有一种经典的折半查找算法,...

Android机动车
2018/05/02
0
0
[概念辨析 系列 之二] 二叉树:complete和full

二叉树(binary tree)是一种数据结构,它有唯一的根节点,并且每个节点都有0个,1个或者2个子节点。它的(至多)两个子节点被区分为左子节点和右子节点。 为了更准确地讨论二叉树的性质,我们在...

黄宇
2016/09/27
0
0
数据结构——二叉树

一、二叉树的定义 二叉树是n(n>=0)个结点的有限集合,该集合或者为空集(称为空二叉树),或者由一个根结点和两颗互不相交的、分别称为根结点的左子树和右子树的二叉树组成。 二、二叉树的特...

lxq_xsyu
2014/12/14
0
0
二叉树的基本概念

二叉树的定义 一棵二叉树是结点的一个有限集合,该集合或者为空,或者是由一个根节点加上两棵分别称为左子树和右子树的、互不相交的二叉树组成。 二叉树的5种基本形态,任意一棵二叉树都由这...

大胖和二胖
2016/11/29
15
0

没有更多内容

加载失败,请刷新页面

加载更多

Nginx反向代理

Nginx反向代理 应用场景 A 机器运行的nginx提供的web服务,只有一个内网地址192.168.254.128(内网) B机器有两块网卡,一个地址是192.168.254.137(内网),另一个是192.168.79.128(外网)...

李超小牛子
今天
2
0
数据库事务隔离级别

当数据库上有多个事务同时执行的时候,可能出现下面问题: 脏读(dirty read):指当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事务也访...

Jacktanger
今天
1
0
4.61 - 第二个JAVA应用 4.62/63 - Tomcat的管理功能

4.61 - 第二个JAVA应用 方法一:配置文件: /usr/local/tomcat/conf/server.xml <Host name="www.aminglinux.cc" appBase="/data/wwwroot/www.aminglinux.cc" unpackWARs="tr......

Champin
今天
0
0
MariaDB密码重置

MariaDB密码重置 如果记得root的密码: mysqladmin -uroot -paminglinux password "aming-linux" //用此方式将原密码aminglinux重置为aming-linux 如果不记得原密码: # vi /etc/my.cnf......

wzb88
昨天
1
0
印度封禁抖音,称导致该国年轻人“文化堕落”!

本文经授权转载自顶级程序员 (ID:TopCoding) 作者 | 江户川雨 责编 | https://weavi.com/13775725 https://weavi.com/13775726 https://weavi.com/13775724 https://weavi.com/13775723 ......

陈刚生
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部