`
zht1933
  • 浏览: 219050 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

    博客分类:
  • JAVA
阅读更多
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);     
  }     
  } 

class myTree{
int key;
int data;
myTree leftChild;
myTree parentChild;
myTree rightChild;
public  String toString(){
return "haha";
}
}
分享到:
评论

相关推荐

    先序遍历二叉树的非递归算法程序

    编写先序遍历二叉树的非递归算法程序,要求: (1)以二叉链表建立二叉树。 (2)输出遍历的结点序列。 (3)有实例验算。

    建立二叉树,并输出二叉树的先序,中序和后序遍历序列,以及二叉树的叶子数

    [问题描述] 建立二叉树,并输出二叉树的先序,中序和后序遍历序列,以及二叉树的叶子数。 [基本要求] 要求根据读取的元素建立二叉树,能输出各种遍历。 [实现提示] 可通过输入带空格的前序序列建立二叉链表。

    遍历二叉树(java实现)

    用java实现二叉树遍历 包括先序,中序,后序 后续是自己写的算法 可以运行

    Java输出二叉树先序遍历代码

    附件是Java输出二叉树先序遍历代码,先序遍历的顺序是:首先访问根节点,然后递归地先序遍历左子树,最后递归地先序遍历右子树。 TreeNode 类定义了二叉树的节点,每个节点包含一个整数值 val 和指向左右子节点的...

    剑指offer算法实现java版——面试题19二叉树的镜像

    分析:所谓“镜像”就是从镜子里看到的样子。我们可以画一棵二叉树,然后画出该...遍历我们可以使用先序遍历,首先判断当前根结点是否为叶子结点,若非叶子结点,则交换左右孩子,然后再分别对左右孩子进行相同的操作。

    编写递归算法,计算二叉树中叶子结点的数目

    编写递归算法,计算二叉树中叶子结点的数目

    Java输出先序遍历二叉树的代码

    附件是Java输出先序遍历二叉树的代码,先序遍历的顺序是:首先访问根节点,然后递归地先序遍历左子树,最后递归地先序遍历右子树。 TreeNode 类定义了二叉树的节点,每个节点包含一个整数值 val 和指向左右子节点...

    二叉树的非递归遍历运算

    二叉树的非递归遍历运算 建立二叉树的三叉链式存储结构,在此基础上完成下列算法: 1) 从键盘上输入二叉树的各个结点,建立三叉链表 2) 输出该二叉树 3) 非递归的层次遍历算法 4) 非递归的先序遍历、中序遍历、...

    java面试题

    请用java写二叉树算法,实现添加数据形成二叉树功能,并以先序的方式打印出来. 119 84.12. 请写一个java程序实现线程连接池功能? 122 84.13. 编一段代码,实现在控制台输入一组数字后,排序后在控制台输出; 122 ...

    JAVA 二叉树实验

    1)建立一个二叉树; 2)实现该二叉树的先序遍历、中序遍历和后序遍历递归算法并输出各遍历序列; 3)统计出该二叉树中叶子结点的个数;

    JAVA面试题最全集

    请用java写二叉树算法,实现添加数据形成二叉树功能,并以先序的方式打印出来. 43.请写一个java程序实现线程连接池功能? 44.给定一个C语言函数,要求实现在java类中进行调用。 45.如何获得数组的长度? 46....

    这是Kotlin语言版本的 Android 客户端本地化算法展示 Java 语言编写的面试算法_kotlin_代码_下载

    用二叉、先序和序顺序法 打印二叉树的存在节点 二叉树的序列化和反序列化 示例算法 冒泡示例 选择示例 插件示例 计数示例 快速示例 并举示例 堆示例 力扣算法 周 1.两数之和 4.寻找两个结果的直接曝光 11.盛最多...

    Algorithms-and-data-structures---Java:自己根据书C语言版算法数据结构和一些资料,用Java实现其中经典的语法和算法结构

    根据书C语言版算法数据结构和一些资料,使用面向对象思想和Java语言实现其中经典的语法和算法结构。 按目录分别实现: 01 数组、升序、二分法查找 02 简单排序:冒泡排序、选择排序、插入排序 03 栈、队列、循环队列...

    数据结构树的操作实验报告

    ④二叉树先序遍历的非递归算法实现; ⑤利用二叉树的遍历算法求二叉树的结点数、二叉树的叶结点数、二叉树的高度; ⑥二叉树的撤销删除 三、实验步骤: 1、需求分析: 本演示程序用JAVA编写,完成树的生成,任意位置...

    Python 二叉树的层序建立与三种遍历实现详解

    今天我就在B站看了数据结构中关于树的内容后,又用我浅薄的Python大法来实现一些树的建立和遍历。 关于树的建立我觉得层序建立对于使用者来说最为直观,输入很好写。(好吧,我是看LeetCode中的树输入都是采用层序...

    Java服务器端开发面试.doc

    能根据题目想到这方面,简单的例子能写出来 图的算法 最好去leetcode上系统的刷一下题,不需要全部刷完,但是基本的类型都刷到,很 有帮助,代码能力也能提高 ----------------------- Java服务器端开发面试全文共2...

    Algorithm:此项目旨再梳理到Android系统或源码中使用到的算法

    实现一些常见基础的算法,并为后续android中使用的复杂算法做准备 1.二叉树的遍历 先序思想:中左右 中序思想:左中右 后序思想:左右中 2.二叉树的翻转 思想:temp存储临时二叉树,递归每一层都进行左右子树取反 3....

    lrucacheleetcode-leetcode:LeetCode算法问题

    lru缓存leetcode ...二叉树先序遍历 二叉树右侧视图 二叉树倾斜 二叉树倒置 二叉树倒置.c 二叉树垂直顺序遍历 二叉树之字形水平顺序遍历 二进制手表 数字范围的按位与 字符串中的粗体字 二叉树的边界 灯泡切换器

Global site tag (gtag.js) - Google Analytics