二叉排序树的建立
来源:互联网 发布:网页源码查看 apk 编辑:程序博客网 时间:2024/06/08 19:27
最近看了一下二叉排序树的建立,自己写了一段代码,用来建立二叉排序树,给定一个数组,对这个数组中的数字进行建立二叉排序树。分两种情况:
1 数组中的数字是随机的,也就是说没有顺序 eg : int a [ ] = {3,1,2,5,0,7,9,8} ,用这个数组中的数字建立二叉排序树,注意这里的二叉排序树是随便的,没有特殊的要求(比如建立高度最小的二叉排序树),可知二叉排序树是不唯一的。常规方法采用递归,首先先以3这个数字为根节点,仅接着采用递归,大于根节点的在右子树中,小于等于根节点的在左子树中。二叉排序树结构图:
以上构建的二叉排序树的算法代码如下:
1.1使用递归构造排序二叉树的方法:
1.2 使用上方方法,进行构建:
代码很简单,逻辑清晰,如果觉得不保险,可用中序遍历遍历一遍,二叉排序树的中序遍历是递增的。
2 第2种情况,如果给定一个随机的数组,我们需要建立一个高度最小的二叉排序树,我们应该怎么做:
首先,把给定的随机数组排个序,以升序的方式进行排序,ok,这个排序算法的代码就不写了。
然后 , 构造高度最小的二叉排序树,高度最小意味着左子树和右子树的高度基本相等,所以我们会想,首先我们以排序好的数组的中间数为根节点,然后中间数的左边是左子树,右边是右子树,然后在对中间数的左边的数再取中间数以它为上一个根节点的左子树,依次类推,来构建。
还是以上面的数组进行 a[] = {3,1,2,5,0,7,9,8}进行升序排序后为 a[ ] = {0,1,2,3,5,7,8,9},二叉排序树结构图:中间数为3以它为根节点:结构图如下:
2.1 最小高度的二叉排序树结构图所对应的算法代码如下:
2.2 使用上述方法进行构建:
以上就是两种构建排序二叉树的方法,如果哪里有错,请告知,或者方法笨拙,还有更好的方法,可以互相讨论。
阅读全文
1 0
- 二叉排序树的建立-java
- 二叉排序树的建立,删除
- 二叉排序树的建立
- 二叉排序树的建立
- 二叉排序树的建立
- 二叉排序树的建立
- 二叉排序树的建立和遍历
- 二叉排序树的建立和遍历
- 二叉排序树的建立和遍历
- 二叉排序树的建立与遍历
- 二叉排序树的建立与查找
- 二叉排序树的建立和遍历
- 二叉排序树的建立与查找
- 建立二叉排序树
- 实验十六 二叉排序树的建立与查找
- 二叉排序树的查找、插入、删除、建立
- BST二叉排序树的建立以及应用
- java中二叉排序树模型的建立
- 给即将参加noip的自己和各位oier的一些提醒
- 关于tensorflow经过embedding层维度的问题。
- java行为型设计模式——责任链模式
- IDEA导入Junit4jar包
- windows的npm导致Git慢解决方案
- 二叉排序树的建立
- scrapy爬取豆瓣电影中演员合作关系制作gephi图
- Struts2学习---namespace,file模块包含,默认action
- 【智能流程自动化】德勤:自动化时代关于机器人自动化与智能自动化的行业领导者指南
- Struts2结果处理方式以及传参获得原生Http
- 【智能制造】关于德国工业4.0的简要介绍
- spring boot项目启动,Tomcat报端口已被使用
- SQLServer 2016安装时的错误:Polybase要求安装Oracle JRE 7更新51或更高版本
- 负载均衡算法改为源地址哈希法