• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >编程问答 > 请教一下,如何实现一个二元查找树,给定一个中数、节点最大值、最小值,随机生成一个二元查找树

请教一下,如何实现一个二元查找树,给定一个中数、节点最大值、最小值,随机生成一个二元查找树

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-07

佚名通过本文主要向大家介绍了请教一下,如何实现一个二元查找树,给定一个中数、节点最大值、最小值,随机生成一个二元查找树等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题:请教一下,如何实现一个二元查找树,给定一个中数、节点最大值、最小值,随机生成一个二元查找树
描述:

最好用JavaScript或Java实现。

我用Javascript实现了这个二元查找树生成器:

function Tree(root,value){
    Tree.prototype.findMin=function(){
        var tmp=this;
        while (tmp.root!=null&&tmp.root.value>tmp.value){
            tmp=tmp.root;
        }
        if(tmp.root!=null)
        {
            return tmp.root.value;
        }else{
            return min;
        }
    }
    Tree.prototype.findMax=function(){
        var tmp=this;
        while (tmp.root!=null&&tmp.root.value<tmp.value){
            tmp=tmp.root;
        }
        if(tmp.root!=null)
        {
            return tmp.root.value;
        }else{
            return max;
        }
    }
    this.root=root;
    this.value=value;
    var leftValue=null;
    this.left=null;
    var rightValue=null;
    this.right=null;
    if(this.root==null)
    {
        leftValue=Math.floor(Math.random()*(this.value-min));
        rightValue=this.value+1+Math.floor(Math.random()*(max-this.value));
        this.left=new Tree(this,leftValue);
        this.right=new Tree(this,rightValue);
    }
    
    var mmin=this.findMin();
    leftValue=mmin+Math.floor(Math.random()*(this.value-mmin));
    if(leftValue>mmin)
        this.left=new Tree(this,leftValue);
    var mmax=this.findMax();
    rightValue=this.value+Math.floor(Math.random()*(mmax-this.value));
    if(rightValue>this.value)
        this.right=new Tree(this,rightValue);
}
var middle=10;
var min=0;
var max=middle*2;

console.info(new Tree(null,10))

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 各位老师,请教!VFP如何让主程序在副屏显示!
  • 各位大侠,请教一下:Javascript不支持负向后瞻?
  • 请教一下,如何实现一个二元查找树,给定一个中数、节点最大值、最小值,随机生成一个二元查找树

相关文章

  • 2017-06-07 在CenOS7中安装scrapy报错
  • 2017-06-07 Python用SOAP接口怎么用
  • 2017-06-07 Python爬虫运行正常,最后却报错
  • 2017-06-07 laravellaravel如何引用css和js文件?
  • 2017-06-07 python菜鸟,求助。
  • 2017-06-07 SBT下载依赖的问题
  • 2017-06-07 python34使用flask-wtf012报错
  • 2017-06-07 (python)geventpywsgi与Werkzeug实现的wsgi有区别么
  • 2017-06-07 URL的?变成%3F
  • 2017-06-07 七牛云存储生成日志的时间目前要2天时间,能否缩短呢?

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 用python提取两个文件之间的内容
    • phpapi调用问题
    • golang(golang)SEO统计算法
    • (shell)Centos使用root用户也无法删除文件
    • (python)可不可以写一个爬虫,下载自己想下载的电影?
    • js正则表达式js正则表达式?
    • python中"ifxisnotNone"和"ifnotxisNone"有什么区别?
    • 求jsf的视频教程,有的请分享下,谢谢了
    • 如何在virtualenv下使用homebrew安装的python包?
    • 我是不是喜欢上她了??

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有