首页 > 编程语言 >请用java写二叉树算法,实现添加数据形成二叉树功能,并以先序的方式打印出来....

请用java写二叉树算法,实现添加数据形成二叉树功能,并以先序的方式打印出来....

时间:2023-04-27 17:03:35浏览次数:47  
标签:insert java parent tree .... t1 二叉树 key myTree


先转载过来以后再研究

import   java.io.*;   
  import   java.util.Stack;   
    
  public   class   myTest   {   
  private   myTree   tree;   
    
    
  /**   
  *二叉树的插入,参数为(关键字,数据)   
  *   
  **/   
  public   void   insert(int   key,   int   data)   
  {   
  if(tree   ==   null)   
  {   
  tree   =   new   myTree();   
  tree.key   =   key;   
  tree.data   =   data;   
  }   
  else   
  {   
  myTree   newTree   =   new   myTree();   
  newTree.key   =   key;   
  newTree.data   =   data;   
  myTree   parent   =   tree;   
  while(true)   
  {   
  if(   newTree.key   <   parent.key)   
  {   
  if(   parent.leftChild   ==   null)   
  {   
  parent.leftChild   =   newTree;   
  return;   
  }   
  else   
  {   
  parent   =   parent.leftChild;   
  }   
  }   
  else   if(   newTree.key   >   parent.key)   
  {   
  if(parent.rightChild   ==   null)   
  {   
  parent.rightChild   =   newTree;   
  return;   
  }   
  else   
  {   
  parent   =   parent.rightChild;   
  }   
  }   
  }   
    
  }   
  }   
    
  /**   
    *   二叉树的查找,参数为(关键字),返回值为   myTree的一个实例   
    *     
    *   **/   
  public   myTree   find(int   key)   
  {   
  if(   tree   ==   null   )   return   null;   
  myTree   curr   =   new   myTree();   
  curr.key   =   key;   
  myTree   parent   =   tree;   
  while(true)   
  {   
  if(   parent   ==   null)   
  {   
  return   null;   
  }   
  else   if(   curr.key   ==   parent.key)   
  {   
  return   parent;   
  }   
  else   if(   curr.key   >   parent.key)   
  {   
  parent   =   parent.rightChild;   
  }   
  else   if(   curr.key   <   parent.key)   
  {   
  parent   =   parent.leftChild;   
  }   
  }   
  }   
    
    
    
  /*   
    *     
    *   递归的二叉树中序遍历   
    *     
    *     
    */   
  private   static   void   midOrder(myTree   tree)   
  {   
  if(tree   !=   null   )   
  {   
  midOrder(tree.leftChild);   
  System.out.println(tree+","+tree.key+","+tree.data);   
  midOrder(tree.rightChild);   
  }   
  }   
    
                      
  /*   
    *   前序遍历     
    */   
  private   static   void   frontOrder(myTree   tree)   
  {   
  if(tree   !=   null)   
  {   
  System.out.println(""+tree.key+"   ,   "+tree.data);   
  frontOrder(tree.leftChild);   
  frontOrder(tree.rightChild);   
  }   
  }   
    
    
  public   static   void   main(String[]   args)     
  {   
  System.out.println("Tree   view   Begin");   
  myTest   t1   =   new   myTest();   
  t1.insert(8,25);   
  t1.insert(5,9);   
  t1.insert(58,87);   
  t1.insert(13,82);   
  t1.insert(4,8);   
  t1.insert(12,54);   
  t1.insert(53,123);   
  t1.insert(56,47);   
  t1.insert(2,75);   
  t1.insert(34,5);   
  t1.insert(6,23);   
  System.out.println("现在开始遍历:");   
  midOrder2(t1.tree);   
  midOrder(t1.tree);   
  }   
  }

 

黑色头发  http://heisetoufa.iteye.com

如果发现本文有误,欢迎批评指正

标签:insert,java,parent,tree,....,t1,二叉树,key,myTree
From: https://blog.51cto.com/u_2543512/6231827

相关文章

  • 实现从文件中一次读出一个字符的操作,java实现从文件中一次读出一个字符的操作...
    InputStreamis=newFileInputStream("in.file");...byteb=(byte)(is.read());Readerr=newFileReader("in.file");...charc=(char)(r.read());read(),是读byte的 黑色头发 http://heisetoufa.iteye.com如果发现本文有误,欢迎......
  • 编程用JAVA解析XML的方式
    用SAX方式解析XML,XML文件如下:<?xmlversion="1.0"encoding="gb2312"?><person><name>王小明</name><college>信息学院</college><telephone>6258113</telephone><notes>男,1955年生,博士,95年调入海南大学......
  • 前端JavaScript的精确计算问题
    问题发现"47.900000"*"771.65" = 36962.034999999996 (错误)  36962.035(正确)问题定位JavaScript前端计算不精确(浮点数计算的精确问题)问题解决除法函数,用来得到精确的除法结果说明:javascript的除法结果会有误差,在两个浮点数相除的时候会比......
  • javascript通过按钮实现超链接
    <html:buttonproperty="PassWordReturnButton"onclick="PassWordReturnJavaScript();">返回</html:button><scriptlanguage="javascript"type="text/javascript">functionPassWordReturnJavaScript(){win......
  • java 类似于google搜索提示的功能,文本框输入提示
    需要先导入数据库,并且在SearchSuggest中改数据库连接参数黑色头发:http://heisetoufa.iteye.com/......
  • 编程开发8大语言详解,为什么Java是我最推荐的?
    一.前言很多没有接触过编程语言的同学,都会觉得编程开发特别高端和神奇,担心理解不了更担心学不会。当然,也有人会认为,你既然是做编程的,那么你应该什么都会,什么软件的开发都能完成,这是平哥经常听到的两种声音。在此,平哥需要给大家科普一下,编程确实改变了这个世界,但这是所有编程人......
  • java处理逻辑表达式计算问题
    在处理SQL的where条件时,发现逻辑运算表达式不是那么简单,并不是一种线型计算结构。但是表达式树的计算又是SQL查询引擎的核心,SQL的抽象语法树最终还是要转换为表达式树来处理。所以基于原来的表达式案例,进行简单的升级,写了一个简单的逻辑表达式处理器。首先我们的逻辑表达式的操......
  • JSON数据和JAVA对象之间的转换
    转:https://blog.csdn.net/qq_39975542/article/details/123947872方法1:利用阿里巴巴开源的fastjson包进行JAVA对象和JSON字符串进行转换。C++中的结构体在JAVA中用对象表示,目录结构如下: Peron类内容如下,对应C++中的Person结构体:packagecom.company;publicclassPerson{......
  • 【SWITCH】java中的switch,一直没发现的错误
    关于switch-case的的使用误区先看一段代码Integerbb=1;switch(bb){case1:System.out.println(1);case2:System.out.println(2);default:System.out.println(3);}会打印什么呢?只打印1,还是会打印123呢?答案是:123我......
  • 软件测试选择学习java还是python?
     你好,我是小牛。当你学完软件测试基本理论,掌握业务测试流程,功能测试可以搞定,数据库和linux玩的也很溜时,接下来想进一步进阶,那么学习一门编程语言必不可少。同时,学习一门编程语言也是你成为自动化测试工程师乃至测试开发工程师的基本准入门槛。目前,编程语言五花八门,比如很多人大学......