二叉树的理解
来源:互联网 发布:java中的有参构造方法 编辑:程序博客网 时间:2024/05/16 01:40
关于二叉树的理解:
定义:首先,对于数据结构中的树而言,树是由n(n>=1)个有限节点组成一个具有层次关系的集合,而二叉树是每个父节点最多有两个子节点的树,说白了树是从根节点从下蔓延的一类有层次的集合,而这种集合是以以节 点形式存在的
价值:或者说二叉树存在的意义,二叉树是一种具有一定的规律,有序,他的左子树和右子树都是按照一定的顺序来安排的,树的分类分为有序树和无序树,我们所去研究的都是一些有序的,即有一点规律和研究的事物,否则一切的都没有意义了,其实所有的关于树的解释,都是从节点包装开始的,也就是所有的树都是基于Node类型的,所以我在这里给的代码是属于节点这一块的
package List;public class Licklist {//创建一个新的链表当做头节点private Node first =new Node(); private int length=0; public void add(String v){ //验证下标越界问题,这个没有越界问题 Node node=new Node(); node.value=v; Node Nownode=first; while(Nownode.next!=null){ Nownode=Nownode.next; } Nownode.next=node; length++; } public void delete(int index){ //验证下标越界问题 if(index<0||index>length){ try {throw new Exception("下标越界");} catch (Exception e) {e.printStackTrace();} } int code=0; Node Nownode=first; while(code!=index){ Nownode = Nownode.next; code++; } Nownode.next=Nownode.next.next; length--; } public String get(int index){ //验证下标越界问题 if(index<0||index>length){ try {throw new Exception("下标越界");} catch (Exception e) {e.printStackTrace();} } //重新定义成链表的形式// Node node=new Node();// node.value=v; int code=0; Node Nownode=first.next; while(code!=index){ Nownode=Nownode.next; code++; } return Nownode.value; } public void update(int index,String v){ //验证下标越界问题 if(index<0||index>length){ try { throw new Exception("下标越界"); } catch (Exception e) { e.printStackTrace(); } } //定义成node类型 Node node=new Node(); node.value=v; int code=0; Node Nownode=first; while(code!=index){ Nownode=Nownode.next; code++; } node.next=Nownode.next.next; Nownode.next=node; } public void insert(int index,String v){ //验证下标越界问题 if(index<0||index>length){ try { throw new Exception("下标越界"); } catch (Exception e) { e.printStackTrace(); } } //定义成node类型 Node node=new Node(); node.value=v; int code=0; Node Nownode=first; while(code!=index){ Nownode=Nownode.next; code++; } node.next=Nownode.next; Nownode.next=node; length++; } public int size(){ return length; }}
完全二叉树性质:一:若根结点的层次为1,则二叉树第i层最多有2的(i-1)次方个结点。
二:在高度为k的二叉树中,则最多有2k-1个结点(k≥0)
三: 设一棵二叉树节点个数为n,则父节点个数为n/2。
四:一棵具有n个结点的完全二叉树,对序号为i(0≤i0,则i的父母结点序号为:若2i+1<n,则i的左孩子结点序号为2i+1;否则i无左孩子。
若2i+2<n,则i的右孩子结点序号为2i+2;否则i无右孩子。
用处:利用完全二叉树的性质,可以将一些数据编辑成有规律的或者说我们想编辑的序列,便于研究使用和处理数据。
- 二叉树的理解
- 线索二叉树的理解
- 二叉树 红黑树的理解
- 树、二叉树、完全二叉树的简单理解
- 二叉树与树的理解
- 二叉树的递归实现理解
- 排序二叉树的实现和理解
- 通过二叉树的遍历理解递归
- 关于红黑二叉树的理解
- 理解二叉树建立过程的例题
- 遍历二叉树的简单理解
- 关于二叉树的一些简单理解
- 递归修剪二叉树的理解
- 理解二叉查找树
- 平衡二叉树理解
- 平衡二叉树理解
- 理解二叉树
- 平衡二叉树理解
- 创业方法论:精益创业和精益创业实战,精益画布和精益画布实战
- 服务器编程——gethostbyname函数
- JCrontab的一个简单的案例
- C#单例模式
- [Leetcode] Isomorphic Strings
- 二叉树的理解
- Socket编程模型之异步选择模型
- 学生会竞选发言稿
- 我的第一个博客
- 在Matalb中如何读取TXT文件中的数据
- 数据表的创建与管理
- JMeter监控服务器CPU、内存及I/O ——plugin插件监控被测系统资源方法
- jquery操作checkbox
- 数据库设计三大范式