在JAVA中实现二叉树,程序如下
//********************************************************************
//filename: BinaryTreeTest.java
//purpose: test a binarytree with java
//author: 猪头
//ver: 0.1
//********************************************************************
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);
}
}
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);
}
}
}
}
//end
讲解:上述各序小,但层次分明,结构严谨,如果有数据库结构知识与C语文能力的JAVA初学者
一看就明白,二个方法如同C语文中的函数,一个寻找关键字--searchkey 另一个是插入一个
结点:insertTree 而class BinaryTree 如同一个C语言中的共同体.
另外这是一个完全的先序遍历二叉树的语法。先根结点,再左结点,如无再右结点,如些加归至
搜索完毕。
运行命令行:java BinaryTreeTest intNumber(一个整数)
分享到:
相关推荐
本文介绍了使用Java语言实现二叉树前序、中序和后序遍历的基本算法。首先,定义了一个简单的TreeNode类来表示二叉树的节点,包括节点...这些遍历算法是二叉树操作的基础,对于理解树形数据结构和算法设计具有重要意义。
java算法二叉树遍历源码文档
二叉树遍历算法 Java c++ 文档 二叉树遍历算法
用java实现二叉树遍历 包括先序,中序,后序 后续是自己写的算法 可以运行
主要介绍了Java实现二叉树的深度优先遍历和广度优先遍历算法,结合实例形式详细分析了二叉树的定义、深度优先遍历与广度优先遍历算法原理与相关操作实现技巧,需要的朋友可以参考下
java实现 二叉树的遍历 前序遍历用到递归, 中序和后序遍历用到栈, 其实还是有一定难度的
NULL 博文链接:https://sun810.iteye.com/blog/1261373
使用java语言,对数据结构中的二叉树进行遍历,包含算法逻辑。
主要介绍了Java中二叉树的建立和各种遍历实例代码,涉及树节点的定义,后序遍历,层序遍历,深度优先和广度优先等相关内容,具有一定借鉴价值,需要的朋友可以参考下
java实现的二叉树源码,包括建立、前序、中序、后序遍历算法,查找算法
java二叉树遍历笔试题 Java中InterviewBit问题的解决方案 编程 种类 递归 二叉搜索树 广度优先搜索 深度优先搜索 动态规划 贪婪的 图形 几何学 模拟 设计 大批 ID 标题 解决方案 时间 空间 困难 笔记 1 O(n*m) O(1) ...
详细介绍了JAVA中二叉树的非递归遍历方式,三种方式都是采用栈来辅助完成,其中前序遍历采用的是先入右子节点再入左子节点的方法,这样弹出栈时左在前,右在后。中序遍历的话则是要先一直到达最左的子节点,然后才弹...
该算法采用欧拉路径遍历二叉树,使用java语言实现的
主要介绍了java实现遍历二叉树的三种情况,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
关于二叉树的实现与遍历,网上已经有很多文章了,包括C, C++以及JAVA等。鉴于python做为脚本语言的简洁性,这里写一篇小文章用python实现二叉树,帮助一些对数据结构不太熟悉的人快速了解下二叉树。本文主要通过...
这是二叉树的java算法,基本思路是通过二叉树的遍历,完成的java语法的算法编程
采用一棵二叉树表示一个家谱关系,要求具有以下功能:①、文件操作功能,即家谱记录的输入、家谱记录的输出、清除全部文件记录和将家谱记录存盘。②、家谱操作功能,即用括号表示法输出家谱二叉树、查找某人的所有...
编写先序遍历二叉树的非递归算法程序,要求: (1)以二叉链表建立二叉树。 (2)输出遍历的结点序列。 (3)有实例验算。
* 基于链表实现二叉树 */ package dsa; public class BinTree_LinkedList implements BinTree { protected BinTreePosition root;//根节点 /**************************** 构造函数 ********************...
这段代码运用Java实现了二叉树算法的核心功能,包括节点的插入和三种基本的遍历方式——中序、前序和后序。通过创建节点类和二叉树类,它构建了一个灵活且可扩展的二叉树结构,为后续的复杂操作提供了坚实的基础。