`
zht1933
  • 浏览: 223530 次
  • 性别: 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";
}
}
分享到:
评论

相关推荐

    JAVA二叉树课设可以实现用户输入数据以二叉树图形表示出来

    在给定的Java二叉树课程设计中,我们需要理解二叉树的概念,熟悉其性质和操作,以及如何在Java中实现这些操作。通过创建用户界面,用户可以输入数据,程序则需要将这些数据转换成二叉树的图形表示,并支持插入、删除...

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

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

    建二叉树并分别用先先序、中序和后序遍历,然后输出各遍历序列

    在这个任务中,我们将关注如何使用二叉链表来构建二叉树,并对其进行先序、中序和后序遍历。此外,我们还将探讨如何交换二叉树中所有节点的左右孩子。 首先,二叉链表是二叉树的一种常见存储方式,每个节点包含两个...

    编写算法交换二叉树中所有结点的左右子树.doc

    该算法使用 C 语言实现,通过建立二叉树、先序遍历输出结点数据和后序遍历交换左右子树三个步骤来实现。 一、建立二叉树 首先,需要建立一个二叉树。该算法使用队列来存储结点指针,以便便捷地访问和遍历二叉树。...

    二叉树先序遍历演示demo

    本文将深入探讨标题所提及的"二叉树先序遍历",并结合描述中的"随机建树及先序演示程序"进行详细讲解。 首先,我们来理解什么是二叉树。二叉树是由节点(或称为顶点)和边构成的,每个节点最多有两个子节点,分别被...

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

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

    Java实现二叉树的先序、中序、后续、层次遍历

    在讲解Java实现二叉树的先序、中序、后序、层次遍历时,我们需要先了解几个关键知识点。 首先,二叉树是一种非常基础且重要的数据结构,每个节点最多有两棵子树,通常称这两棵子树为“左子树”和“右子树”。二叉树...

    数据结构课程设计-线索二叉树算法的实现.doc

    ### 数据结构课程设计——线索二叉树算法的实现 #### 一、课题描述与任务分析 **课题描述:** 本次课程设计的主要目标是通过编程实现二叉树的线索化过程,包括前序、中序和后序线索化,并能够对线索化后的二叉树...

    遍历二叉树(java实现)

    在Java编程语言中,我们可以使用递归或迭代的方式来实现这些遍历方法。 **先序遍历**(根-左-右)是最常见的遍历方式之一,它首先访问根节点,然后递归地遍历左子树,最后遍历右子树。在Java中,可以使用以下递归...

    JAVA实现二叉树建立、遍历

    Java作为一种强大的面向对象编程语言,提供了丰富的数据结构支持,包括二叉树的实现。 首先,我们来看如何通过先序和中序序列建立二叉树。先序遍历顺序是:根节点 -&gt; 左子树 -&gt; 右子树;中序遍历顺序是:左子树 -&gt; ...

    数据结构第六章课件及建立二叉树的二叉链表存储结构汇总

    在计算机科学领域,数据结构是基础且至关重要的概念,它涉及到如何有效地组织和管理数据,以便于高效地访问和操作。本资料集专注于数据结构的第六章内容,特别是关于二叉树及其二叉链表存储结构的讲解。二叉树是一种...

    二叉树算法

    掌握二叉树算法对于学习面向对象编程、迭代、排序和搜索算法(如冒泡排序、选择排序、快速排序等)至关重要,同时也对理解C++、Java等编程语言、数据库操作、底层知识、网络编程、多线程和多进程等高级主题有深远...

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

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

    实验五-数据结构与算法实验报告-二叉树.docx

    1. 建立二叉树:可以通过输入数据序列构建二叉树,数据可以以满二叉树序号和数据元素的形式给出,或者采用递归方法,用“#”代表空节点。 2. 求二叉树的高度:从根节点开始,每次向下遍历到叶子节点,高度即为路径上...

    数据结构-二叉树

    在`main`方法中,创建了一个简单的二叉树并用不同的遍历方式进行打印输出。 总结来说,二叉树是一种重要的数据结构,通过先序、中序和后序遍历可以有效地访问和操作树中的节点。理解这些概念对于学习数据结构和算法...

    数据结构 二叉树所有代码

    这个压缩包“数据结构 二叉树所有代码”显然提供了关于二叉树的各种操作的编程实现,可能是用C、C++、Java或Python等常见编程语言编写的。下面将详细介绍二叉树及其相关的知识点。 二叉树是一种特殊的树形数据结构...

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

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

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

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

Global site tag (gtag.js) - Google Analytics