`

二叉树的结构及其遍历算法

阅读更多
1.BinaryTree.java
/**
 * 前序遍历二叉树。先根结点,再左结点,
 * 如无再右结点,如此递归至搜索完毕。
 */
package com.binarytree;
public class BinaryTree {
 int data;
 BinaryTree leftpoiter;
 BinaryTree rightpoiter;
 BinaryTree(int data) {
  this.data = data;
  leftpoiter = null;
  rightpoiter = null;
 }
 public void insertTree(BinaryTree root, int data) {
  if (data >= root.data) {
   if (root.rightpoiter == null) {
    root.rightpoiter = new BinaryTree(data);
   } else {
    insertTree(root.rightpoiter, data);
   }
  } else {
   if (root.leftpoiter == null) {
    root.leftpoiter = new BinaryTree(data);
   } else {
    insertTree(root.leftpoiter, data);
   }
  }
 }
}

2.BinaryTreeTest.java
package com.binarytree;
public class BinaryTreeTest {
 public static void main(String args[])
 {
 BinaryTreeTest b=new BinaryTreeTest();
 int data[]={12,11,34,45,67,89,56,43,22,98};
 BinaryTree root =new BinaryTree(data[0]);
 System.out.print("二叉树的中的数据:  ");
 for(int i=1;i<data.length;i++){
 root.insertTree(root,data[i]);
 System.out.print(data[i-1]+";");
 }
 System.out.println(data[data.length-1]);
 int key=Integer.parseInt(args[0]);
 if(b.searchkey(root,key))
 {
 System.out.println("找到了:"+key);
 }
 else
 {
 System.out.println("没有找到:"+key);
 }
 }
 public boolean searchkey(BinaryTree root, int key)
 {
 boolean bl=false;
 if(root==null)
 {
 bl=false;
 return bl;
 }
 else if(root.data==key)
 {
 bl=true;
 return bl;
 }
 else if(key>=root.data)
 {
 return searchkey(root.rightpoiter,key);
 }
 return searchkey(root.leftpoiter,key);
 }
}

 

分享到:
评论

相关推荐

    二叉树的存储结构和遍历算法

    给出二叉树的介绍及存储方法和遍历方法.专业课件,非常详细

    C语言二叉树三种遍历算法及其广义表表示

    C语言二叉树三种遍历算法及其广义表表示 VS2012编写 基于先序遍历的构造算法:输入是二叉树的先序序列,但必须在其中加入虚结点以示空指针的位置。假设虚结点输入时用’.’字符表示。 分别利用先序遍历、中序遍历、...

    二叉树非递归遍历算法实现

    这段代码展示了二叉树的非递归遍历算法实现,包括前序遍历、中序遍历和后序遍历。在二叉树的遍历中,递归是一种直观且常见的方法,但非递归遍历则可以避免调用栈过深导致的溢出问题,适用于大型数据结构。 首先,...

    二叉树的继承遍历算法(作业10附件)1

    【二叉树的继承遍历算法】是一种独特的二叉树遍历方式,灵感来源于传统的皇位继承和宗族继承规则。这种算法强调按照特定的顺序访问二叉树节点,即首先遍历所有左子节点,然后访问左子树中最左边节点的右孩子及其左子...

    数据结构课程设计 二叉树的各种遍历算法及树与二叉树的转换程序及报告

    这个项目不仅加深了对二叉树及其遍历算法的理解,还锻炼了编程能力和问题解决能力。通过实际操作,学习者能够更好地掌握数据结构中的核心概念,并为后续的软件开发工作打下坚实基础。在实际应用中,二叉树被广泛应用...

    二叉树遍历及其应用

    通过本课题的设计与实现,不仅能够加深对二叉树及其遍历方法的理解,还能够在实践中提高编程技能。二叉树的应用非常广泛,包括搜索引擎中的文档索引、编译器中的语法树等。因此,熟练掌握二叉树的遍历技巧对于计算机...

    实验八:二叉树的遍历算法

    根据给定的信息,我们可以总结出以下关于“二叉树的遍历算法”的详细知识点: ### 一、基础知识 #### 1.1 二叉树定义 - 二叉树是一种非常重要的非线性数据结构,它由一个根节点以及两个分别被称为左子树和右子树的...

    非线性数据结构:二叉树的遍历算法详解

    内容概要:本文详细介绍了二叉树的基本概念、性质和存储结构,并重点讲解了二叉树的遍历算法。首先定义了二叉树的节点及其性质,接着介绍了二叉树的链式和顺序存储结构。文中详细阐述了前序、中序和后序遍历的概念...

    数据结构-二叉树Java实现及其遍历算法

    数据结构-二叉树Java实现及其遍历算法,代码示例中实现了中序遍历,简单易学。

    数据结构实验报告6-树-二叉树的遍历算法-实验内容及要求.docx

    通过这次实验,学生不仅可以巩固和扩展关于二叉树及其遍历算法的知识,还能提高实际编程能力,学会如何使用循环队列等数据结构来解决实际问题。此外,通过亲手编写代码并调试运行,能够更深刻地理解理论知识与实际...

    二叉树的遍历算法与相关设计

    本文将深入探讨二叉树的遍历算法及其在求解二叉树高度问题上的应用。 首先,我们要了解二叉树的基本概念。二叉树是由n(n&gt;=0)个有限节点组成的一个有穷集合,且满足以下条件: 1. 有且仅有一个特定的称为根的节点...

    二叉树的非递归遍历算法

    本文将深入探讨二叉树的非递归遍历算法,包括中序、前序、后序以及层次序的非递归遍历,同时也会涉及树与二叉树转换的实现。 **1. 非递归遍历算法** **前序遍历**:先访问根节点,然后遍历左子树,最后遍历右子树...

    实现二叉树的各种遍历算法

    1. **定义二叉树结构**: ```c typedef struct BiTNode { int data; BiTNode* lchild, *rchild; } BiTNode, *BiTree; ``` 2. **初始化二叉树**: ```c void InitBiTree(BiTree& T) { T = NULL; } ``` 3...

    二叉树的中序遍历便利算法(C语言)

    在实际应用中,二叉树及其遍历算法是非常有用的工具,尤其是在处理具有层级关系的数据时。例如,在搜索引擎中的索引结构、数据库系统中的索引管理等方面都有广泛的应用。此外,理解并熟练掌握二叉树的遍历算法对于...

    数据结构试验3二叉树建立,遍历等

    二叉树是一种非线性数据结构,在计算机科学领域应用广泛,尤其是在算法设计与分析方面。通过本实验,学生将深入理解二叉树的基本概念、性质及其在计算机中的实现方式。 #### 二叉树基础 **二叉树定义**:二叉树是...

    二叉树的创建及其遍历

     按先序遍历的扩展序列建立二叉树的二叉链表存储结构,实现二叉树先序、中序、后序遍历的递归算法,实现二叉树中序遍历的非递归算法,实现二叉树层次遍历的非递归算法(要求使用顺序队列,调用顺序队列基本操作...

    二叉树遍历算法的应用

    二叉树遍历算法在IT领域中是一种基础且重要的数据结构操作技术,广泛应用于各种问题的解决。在本文中,我们将深入探讨二叉树遍历的原理及其在统计二叉树节点数量、叶子节点计数以及计算树深等方面的应用。 二叉树...

    按层次遍历二叉树-使用Python实现二叉树的层次遍历算法详解

    内容概要:本文详细介绍了一种常用的遍历方式——层次遍历二叉树的具体实现...阅读建议:建议初学者在动手实践时先手动绘制二叉树结构图,并按照代码逻辑逐步推导执行流程,这样可以更加直观地掌握整个算法的工作机制。

    二叉树进行先序遍历与中序遍历

    在二叉树的遍历中,我们通常有三种主要的方式:前序遍历、中序遍历和后序遍历。这些遍历方法是理解二叉树数据结构的基础,...这个实验旨在帮助学生理解和掌握二叉树的数据结构及其操作,同时锻炼了递归和栈的应用能力。

    中序线索化二叉树及中序遍历

    二叉树是一种重要的数据结构,它由节点组成,每个节点包含一个值以及指向左子节点和右子...理解并掌握中序线索化二叉树及其遍历的方法,对于提升算法能力,特别是在数据结构和算法相关的编程面试中,都是非常有价值的。

Global site tag (gtag.js) - Google Analytics