Java基础复习笔记08数据结构-二叉树和二叉树的遍历.doc

Java基础复习笔记08数据结构-二叉树和二叉树的遍历.doc

ID:62044676

大小:167.00 KB

页数:19页

时间:2021-04-16

Java基础复习笔记08数据结构-二叉树和二叉树的遍历.doc_第1页
Java基础复习笔记08数据结构-二叉树和二叉树的遍历.doc_第2页
Java基础复习笔记08数据结构-二叉树和二叉树的遍历.doc_第3页
Java基础复习笔记08数据结构-二叉树和二叉树的遍历.doc_第4页
Java基础复习笔记08数据结构-二叉树和二叉树的遍历.doc_第5页
资源描述:

《Java基础复习笔记08数据结构-二叉树和二叉树的遍历.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、个人收集整理勿做商业用途Java基础复习笔记08数据结构-二叉树和二叉树的遍历刘岩Email:suhuanzheng7784877@163.com1.二叉树一般的树限制比较少,所以才提出了具有特色的二叉树的概念。二叉树顾名思义,每个节点最多有两个子节点,分别叫做左子节点和右子节点。有了这个限定性后,就可以干很多树不能干的事情了。如果树的所有层,除了最后一层的节点外都是两个子节点,那么称这个树为满二叉树。如下图若设二叉树的高度为h,除第h层外,其它各层(1~h-1)的结点数都达到最大个数,第h层所有的节点都连续集中在最左

2、边,这就是完全二叉树。2.二叉树的操作二叉树具有为指定节点增加子节点操作、判断树是否为空、返回根节点、返回指定节点的父节点,返回指定节点的左子节点、返回指定节点的右子节点、返回树的深度、返回指定节点的位置。3.二叉树的延伸其实二叉树只是一个引子,计算机界很多的算法都是根据二叉树所展开的,比如排序二叉树、红黑树、哈夫曼树、线索二叉树等等。个人收集整理勿做商业用途1.顺序实现二叉树下面我们来看看二叉树的顺序实现方式,顺序实现二叉树就是利用数组存储所有的二叉树的节点。代码如下packagedateStructer.tree.

3、binaryTree;/***顺序二叉树* * @authorliuyan*/publicclassArrayBinaryTree<T>{ﻩ//树的默认深度privatestaticfinalintDefTreeDeep=4;//节点数组ﻩprivate Object[]datas;//指定的树的深度ﻩprivateinttreeDeep;// 实际的数组个数ﻩprivateintarraySize;/**ﻩ*默认构造函数*/ﻩpublicArrayBinaryTree() {ﻩﻩ// 设置默认的树深度treeDeep

4、 = DefTreeDeep;// 2的DefTreeDeep次方-1个数组元素ﻩﻩarraySize=(int) Math.pow(2, DefTreeDeep)-1;ﻩdatas =newObject[arraySize];ﻩ}/**ﻩ *指定深度构建二叉树*@paramdeepﻩ */publicArrayBinaryTree(int deep){ﻩﻩ//按指定深度ﻩtreeDeep=deep;arraySize=(int) Math.pow(2,treeDeep)- 1;个人收集整理勿做商业用途datas=ne

5、wObject[arraySize];}ﻩ/**ﻩ *指定深度和指定根节点构建二叉树 *@paramdeepﻩ * @paramdataﻩ*/publicArrayBinaryTree(intdeep,T data) {ﻩ//按指定深度ﻩﻩtreeDeep= deep;ﻩﻩarraySize=(int)Math.pow(2,treeDeep)-1;datas= newObject[arraySize];ﻩdatas[0]=data;ﻩ}ﻩ/**ﻩ*为指定节点索引增加子节点*@param index*@param dat

6、a *@paramisLeft * @returnﻩ*/ﻩpublicbooleanaddNode(intindex, T data,booleanisLeft){ﻩif(index*2+2>arraySize

7、

8、datas[index]==null){ﻩﻩthrownewRuntimeException("标记无效");ﻩ}if(isLeft){ﻩﻩﻩdatas[index* 2 +1] = data;ﻩﻩ}else{ﻩdatas[index*2+ 2]=data;ﻩ}ﻩreturntrue;ﻩ}/**ﻩ *判断二叉

9、树是否为空ﻩ*ﻩ*@returnﻩ */ﻩpublicbooleanisEmpty(){ﻩreturn arraySize==0;ﻩ}个人收集整理勿做商业用途ﻩ/***返回根节点ﻩ*ﻩ*@returnﻩ */@SuppressWarnings("unchecked")public TgetRoot() {ﻩﻩreturn(T)datas[0];}ﻩ/** *返回指定节点的父节点*@returnﻩ */ﻩ@SuppressWarnings("unchecked")ﻩpublicTgetParent(int index){

10、ﻩif(index >arraySize

11、| datas[index]==null){ﻩﻩthrownewRuntimeException("标记无效");ﻩ}ﻩﻩif(datas[(index- 1)/2]==null){ﻩﻩthrownewRuntimeException("无父节点");ﻩ}ﻩreturn(T)datas[(

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。