`
cpine
  • 浏览: 53350 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

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

    博客分类:
  • J2SE
阅读更多
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编写 基于先序遍历的构造算法:输入是二叉树的先序序列,但必须在其中加入虚结点以示空指针的位置。假设虚结点输入时用’.’字符表示。 分别利用先序遍历、中序遍历、...

    二叉树遍历及其应用

    数据结构课程设计--二叉树遍历及其应用、对树的先序遍历、后序遍历、中序遍历、层序遍历、二叉树的深度及其叶子树、并打印树形。

    二叉树的创建及其遍历

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

    二叉树遍历论文

    通过本次实习加强了对二叉树的建立和各种遍历...它们分别完成了二叉树的建立,以及递归、非递归的先序遍历、中序遍历、后序遍历和层序遍历算法:其中先序中序后序的递归遍历算法是利用二叉树的链式存储结构进行的遍历。

    C语言数据结构之线索二叉树及其遍历

    C语言数据结构之线索二叉树及其遍历 遍历二叉树就是以一定的规则将二叉树中的节点排列成一个线性序列,从而得到二叉树节点的各种遍历序列,其实质是:对一个非线性的结构进行线性化。使得在这个访问序列中每一个节点...

    数据结构与算法实验报告

    3 实验三 二叉树的构造与遍历 13 3.1 实验目的 13 3.2 实验要求 13 3.3 实验内容 13 3.3.1 二叉树结构体的构造 13 3.3.2 二叉树的节点产生 13 3.3.3 二叉树的前序遍历 14 3.3.4 二叉树的中序遍历 14 3.3.5 二叉树的...

    二叉树遍历报告.doc

    许多实际问题抽象出来的数据结构往往是二叉树形式,即使是一般的树也能简单地转换为二叉树,而且二叉树的存储结构及其算法都较为简单,因此二叉树显得特别重要。二叉树特点是每个结点最多只能有两棵子树,且有左右之...

    哈工大数据结构实验二_树形结构及其应用

    遍历的递归和非递归算法以及层序遍历算法,并以适当的形式显示和保存二叉树 及其相应的遍历序列; 3.设计并实现判断任意一棵二叉树是否为完全二叉树的算法。 4.设计并实现计算任意一棵二叉树的宽度的(递归或非...

    线索二叉树的实现.doc

    (1)逻辑设计:写出抽象数据类型的定义,各个主要模块的算法,并画...这有助于验证二叉树结构和遍历算法的正确性,同时对于理解和操作二叉树数据结构非常有帮助。 程序的输出结果证明了其对二叉树操作的正确性和有效性。

    数据结构题

    1. 对一个算法的评价,不包括如下( )方面的内容。 A.健壮性和可读性 B.并行性 C.正确性 D.时空复杂度 2. 在带有头结点的单链表HL中,要向表头插入一个由指针p指向的结点,则执行( )。 A. p-&gt;next=HL-&gt;next; ...

    二叉树及其应用

    实验目的 1. 加深对二叉树结构的理解; 2. 熟练掌握二叉树的存储结构,特别是二叉链表类的描述及其实现...3. 掌握二叉树的遍历算法原理和实现方法; 4. 学会编写对二叉树的各种操作算法; 5. 掌握二叉树结构的应用。

    二叉树c++算法,二叉树是树形结构的一个重要类型。许多实际问题抽象出来的数据结构往往是二叉树的形式,即使是一般的树也能简单地转换为二叉树,而且二叉树的存储结构及其算法都较为简单,因此二叉树显得特别重要。

    从二叉树的递归定义可知,一棵非空的二叉树由根结点及左、右子树这三个基本部分组成。因此,在任一给定结点上,可以按某种次序执行三个操作: (1)访问结点本身(N), (2)遍历该结点的左子树(L), (3)遍历该...

    数据结构实验5 二叉树.doc

    1、掌握二叉树的创建算法、掌握二叉树的遍历算法 2、掌握哈夫曼树的构造和应用,利用哈夫曼方法及其编/译码技术实现对传输信息编码/译码系统。 二、 实验内容: 1、 在一棵二叉链表表示的二叉树中,实现以下操作。 ...

    c++实现二叉树及其应用

    以二叉链表为存储结构,写出建立二叉树、先序(中序、后序)遍历二叉树、求二叉树节点总数、叶子数、树高度的算法。

    结构化二叉树.cpp

    2.掌握二叉树的先序、中序、后序遍历算法,将遍历方法熟练应用到建立二叉链表、统计叶子节点,统计节点个数,求二叉树高度和输出节点信息的算法中。 【实验类型】 验证型实验 【实验原理】 二叉树是n(n≥0)...

    实验五、二叉树操作及应用.docx

    程序代码给出了该二叉树的链式存储结构的建立、前序、中序、后序遍历的算法,同时也给出了查询“E”是否在二叉树里的...资源含有实验报告的编写,及选做题(编写二叉树的前序(或中序)的非递归遍历算法并进行测试)

    LeetCode:LeetCode-Algorithms-DataStructure(使用Python3编写LeetCode)

    LeetCode+算法+数据结构(write LeetCode with Python3) 相交链表.py 环形链表.py 环形链表II.py 删除链表中的节点.py 删除排序链表中的重复元素II.py 回文链表.py 奇偶链表.py 复制带随机指针的链表.py K个一组翻转...

    吉林大学软件学院2011数据结构实验题C++实现

    验证二叉树的链接存储结构及其上的基本操作。 [实验内容及要求] 1、 定义链接存储的二叉树类。 2、 实验验证如下算法的正确性、各种功能及指标: 1)创建一棵二叉树,并对其初始化; 2)先根、中根、后根遍历二叉树...

    数据结构——树

    树的定义和基本术语:根、孩子、子孙、双亲...二叉树遍历及其算法。 线索二叉树的概念、二叉树线索化 最优二叉树的定义、构建及哈夫曼编码的构造。 树的存储方式。 树或森林与二叉树之间的相互转化 树及森林的遍历方法

Global site tag (gtag.js) - Google Analytics