当前位置:  编程技术>java/j2ee

二叉搜索树实例练习

    来源: 互联网  发布时间:2014-10-22

    本文导语:  一棵二叉查找树是按二叉树结构来组织的。这样的树可以用链表结构表示,其中每一个结点都是一个对象。结点中除了数据外,还包括域left,right和p,它们分别指向结点的左儿子、右儿子,如果结点不存在,则为NULL。 它或者是...

一棵二叉查找树是按二叉树结构来组织的。这样的树可以用链表结构表示,其中每一个结点都是一个对象。结点中除了数据外,还包括域left,right和p,它们分别指向结点的左儿子、右儿子,如果结点不存在,则为NULL。
它或者是一棵空树;或者是具有下列性质的二叉树:
1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值;
(2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值;
(3)左、右子树也分别为二叉查找树;
显然满足了上面的性质,那么二叉查找树按中序遍历就是按从小到大的顺序遍历,这也就是为什么叫排序树的原因,当然上面的小于和大于都可以根据自己的需求改变的。
二叉查找树的几个常用操作:查找,删除,插入.
HDU 3791:
Problem Description
判断两序列是否为同一二叉搜索树序列
Input
开始一个数n,(1 getRight(){
return this.right;
}
public String toString(){
return element + "";
}
}
class BinarySearchTree< T extends Comparable>{//二叉搜索树
private BinaryNode< T> root;//根节点
public BinarySearchTree(){//构造函数
root = null;
}
public BinarySearchTree(BinaryNode< T> t){//构造函数
root = t;
}
public void makeEmpty(){
root = null;
}
public boolean isEmpty(){
return root == null;
}
public BinaryNode getRoot(){
return root;
}
public T find(T x){
return find(x, root).element;
}
public void insert(T x){
root = insert(x, root);
}
public void printTree(){
printTree(root);
}
private BinaryNode< T> find(T x, BinaryNode< T> t){//查找操作
if(t == null){
return null;
}
if(x.compareTo(t.element) < 0){
return find(x, t.left);
}
else if(x.compareTo(t.element) == 0){
return t;
}
else{
return find(x, t.right);
}
}
private BinaryNode< T> insert(T x, BinaryNode< T> t){//插入操作
if(t == null){
t = new BinaryNode< T>(x, null, null);
}
else if(x.compareTo(t.element) < 0){
t.left = insert(x, t.left);
}
else if(x.compareTo(t.element) > 0){
t.right = insert(x, t.right);
}
else;
return t;
}
private StringBuffer sb=new StringBuffer();
public String printTree(BinaryNode< T> t){//前序遍历二叉查找树
if(t != null){
sb.append(t.element);
printTree(t.left);
printTree(t.right);
}
return sb.toString();
}
}

    
 
 

您可能感兴趣的文章:

  • linux bash shell命令:文本搜索工具Grep命令选项及实例
  • c语言全盘搜索指定文件的实例代码
  • jsp源码实例4(搜索引擎)
  • C++实现广度优先搜索实例
  • C语言实现图的遍历之深度优先搜索实例
  • python使用正则搜索字符串或文件中的浮点数代码实例
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • linux bash shell命令:grep文本搜索工具简介
  • VI搜索时怎样将复制的内容作为搜索的内容??
  • 通过docker search命令搜索可用docker镜像
  • 高分求救:如何在一个企业的自己的网站上设置搜索引擎,用来搜索本行业的信息,需要什么条件?
  • linux bash shell命令:文本搜索工具grep中用于egrep和 grep -E的元字符扩展集
  • 请问 如何修改hostname. 本站搜索未果,google搜索未果,看linux自带帮助未果.
  • linux bash shell命令:文本搜索工具grep正则表达式元字符集(基本集)
  • 列出该shell的搜索路径。如果搜索路径中不包括当前目录和
  • 怎样用jsp做一个简单的关键字全文搜索,只要搜索一个目录中的文件即可(全是.htm文件)
  • 跪求一个按指定日期搜索文件,并把搜索到的文件复制到自定义的目录下的shell程序
  • 我用java做的applet站内搜索程序,不能搜索中文,那位大虾能帮帮我?代码如下:
  • 请教点击开始-->搜索-->文件和文件夹-->搜索选项-->日期-->介于选择日期的那个框怎么实现的??
  • Jquery模仿Baidu、Google搜索时自动补充搜索结果提示
  • 常见问题常见问题 搜索搜索 团队团队 个人资料个人资料 您没有新的站内信件您没有新的站内信件 注销 [ tnt_bomb ]注销 [ tnt_b
  • 网站的站内搜索是怎么实现的?怎么做?在网页的头元素中有一关键词元素,是不是就是给站内搜索用的?如果我在Sina中登记我的网站,那么是不是
  • android将搜索引擎设置为中国雅虎无法搜索问题解决方法
  • Google AJAX 搜索 API
  • 姓名搜索
  • 命令行的搜索工具 Surfraw
  • 开源搜索系统 Red-Piranha
  • PHP搜索引擎 Yioop!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3