用数组构造一个二叉树
来源:互联网 发布:galgame制作软件 编辑:程序博客网 时间:2024/05/16 17:15
package buildBinaryTree;/** * 建立二叉树必须遵守:小于父节点的值放在左子节点上,大于父节点的放在右子节点上 * 满二叉树:如果树的高度为h,则树的节点个数为2^h-1。假设有N个节点,那么二叉树的阶层h为log2(N+1),节点数为2^h-1。 * 一个二叉树左节点的位置是根节位置位置的2倍,右节点的位置是根节点的2倍+1。 * * @date:2017年3月12日 * @Discription:用数组建立二叉树 */public class BuildUseArray {public static void main(String[] args) {int[] data = { 6, 3, 5, 9, 7, 8, 4, 2 };int[] bTree = new int[16];// log2(N+1)System.out.print("原始数组的内容\n");for (int i = 0; i < data.length; i++) {System.out.print("[" + data[i] + "]" + " ");}System.out.println();// 将原始数组的值与树根逐一对比for (int i = 0; i < data.length; i++) {int level;for (level = 1; bTree[level] != 0;) {// 从根节点开始进行比较,根节点的位置为1.if (data[i] > bTree[level]) {// 如果比树根大,则往右比较(2*level+1)level = 2 * level + 1;} else {// 如果小于等于树根,则往左比较(2*level)level = 2 * level;}}bTree[level] = data[i];// 把数值放入二叉树中}System.out.println("二叉树建立成功");for (int i = 0; i < bTree.length; i++) {System.out.print("[" + bTree[i] + "]" + " ");}}}
0 0
- 用数组构造一个二叉树
- 构造一个二叉树
- 给定一个数组,写个程序构造一个最矮的二叉树
- 给定一个有序的链表或者数组,构造一棵二叉搜索树
- 【难】【二叉树】构造数组的MaxTree
- 从数组构造二叉树代码
- 二叉树和数组的构造转换
- c语言构造数组二叉树
- 构造数组的MaxTree(二叉树)
- 用数组构造一般二叉树(完全二叉树较多案例啦)
- 编程算法 - 数组构造二叉树并打印
- 将一个数组变成二叉树
- 将一个数组变成二叉树
- 数组实现根据二叉树的先序遍历和中序遍历构造二叉树
- 构造平衡二叉树
- 二叉树的构造
- 遍历构造二叉树
- 二叉树的构造
- 为安卓应用添加手势密码功能,遇到的一些问题以及解决方法
- MySQL源码学习:InnoDB的ib_logfile写入策略
- 运放使用“虚短”和”虚断“的理解
- 算法设计与分析
- 爬楼梯 (sdut oj)
- 用数组构造一个二叉树
- You need to use a Theme.AppCompat theme (or descendant) with this activity.异常处理其一
- 0313 JS
- Dex文件格式扫描器:特征API的检测和扫描(小工具一枚)
- OpenSSH升级到7.0+遇到的问题
- SVN trunk branches tag详解
- Thread的中断机制(interrupt)
- FZU
- vue笔记----组件