使用一维数组存储二叉树--Java版
来源:互联网 发布:上海甲子网络 编辑:程序博客网 时间:2024/06/13 17:04
package com.datastructure;/*** * 需求:使用一维数组存储二叉树 * 步骤: * 1、查看原始数据的个数(8个),从而制定二叉树层级(4层),得到满二叉树节点个数(15个) * 2、二叉树节点(15个)为一维数组,全设置为0 * 3、循环遍历原始数据,第一个值为树根 * 4、第二个值与父节点比较,如果大于树根,则往右子树比较,如果数组内的值小于或等于树根,则往左子树比较 * 5、【循环】步骤4,直到形成二叉树 * * 备注:左节点的坐标等于父节点的坐标*2,右节点的坐标等于父节点的坐标*2+1 */import java.io.*;public class binaryTree{ public static void main(String args[]) throws IOException { int i,level; int data[]={6,3,5,9,7,8,4,2}; /*原始数组*/ int btree[]=new int[16]; for(i=0;i<16;i++) btree[i]=0; System.out.print("原始数组内容: \n"); for(i=0;i<8;i++) System.out.print("["+data[i]+"] "); System.out.println(); for(i=0;i<8;i++) /*把原始数组中的值逐一对比*/ { System.out.println("i==>"+i); for(level=1;btree[level]!=0;) /*比较树根及数组内的值*/ { System.out.println("levele==>"+level+" btree[level]==>"+btree[level]); if(data[i]>btree[level]) /*如果数组内的值大于树根,则往右子树比较*/ level=level*2+1; else /*如果数组内的值小于或等于树根,则往左子树比较*/ level=level*2; } /*如果子树节点的值不为0,则再与数组内的值比较一次*/ btree[level]=data[i]; /*把数组值放入二叉树*/ } System.out.print("二叉树内容:\n"); for (i=1;i<16;i++) System.out.print("["+btree[i]+"] "); System.out.print("\n"); } }
如果您喜欢我写的博文,读后觉得收获很大,不妨小额赞助我一下,让我有动力继续写出高质量的博文,感谢您的赞赏!!!
阅读全文
0 0
- 使用一维数组存储二叉树--Java版
- 二叉树的一维数组存储
- 数组顺序存储二叉树
- 数据结构----------------二叉树数组存储
- java一维数组、多维数组底层存储
- 将一棵二叉树的所有结点存储在一维数组中,虚结点用#表示,利用性质5
- 使用数组的方法建立一颗二叉树
- 使用java实现顺序存储的二叉树
- 使用java实现链式存储的二叉树
- SDKD 14级组队练习赛(一) D 数组存储二叉树并递归遍历
- 二叉树数组存储结构实现
- 5.1数组存储二叉树实验
- 二叉树数组顺序存储与遍历
- 二叉树1(数组存储)
- 二叉树的数组存储及运算
- java一维数组的使用
- 使用C++数组实现二叉树的存储和基本操作
- 二叉树的表示(基于一维数组)
- iOS UIImageView自适应图片大小
- 让你彻底明白this的指向问题
- CSS3选择器:nth-child和:nth-of-type之间的差异(转)
- js 事件
- java代码实现发送邮件
- 使用一维数组存储二叉树--Java版
- HDU 1166 敌兵布阵(线段树,树状数组)
- springboot之servlet注入
- 防止系统重启后时区改变
- java中for循环和ArrayList的详细解析案例
- 综合---专业版Unity技巧分享:使用定制资源配置文件:制作一个对象池
- 设计REST风格的Java MVC框架:WebWind
- Mybatis XML 文件的学习详解
- jquery的复选框操作