树的基本概述
2015-08-27 13:30
211 查看
一个结点的度是指该结点的子树个数,而树的度是树中所有结点的度的最大值,数的层规定根结点为第一层,其他所有结点的层都是其父结点的层号加1,树的高度或深度是树中所有结点的最大层号。
二叉树的性质:
在二叉树中,第i层的结点数最多为2i−12^{i-1},i>=1.
在深度为k的二叉树中,结点总数最多为2k2^k-1,k>=1.
对任何非空的二叉树T,如果叶结点的个数为 n0n_0,而度为2的结点数为 n2n_2,则 n0n_0= n2n_2+1.
满二叉树定义:一个深度为k且具有 2k2_k-1个结点的二叉树。
完全二叉树定义:一个深度为k具有n个结点的二叉树且其结点的排版顺序是与让深度为k的满二叉树结点编号从1到n相对应,其性质如下:
若 i!=1,则其父结点parent(i)的编号为[i/2],若i=1,则i是根节点。
若2i<=n,则左儿子left_child(i)的编号为2i,若2i>n,则i没有左儿子。
若2i+1<=n,则其右儿子right_child(i)的编号为2i+1,若2i+1>n,则i没有右儿子。
树的两种存储方式,数组和链表,例子如图:
![](http://img.blog.csdn.net/20150827125601094)
![](http://img.blog.csdn.net/20150827133434647)
因此可以看输出数组存储类似这种倾斜的二叉树很浪费空间,而链表则不会。
二叉树的性质:
在二叉树中,第i层的结点数最多为2i−12^{i-1},i>=1.
在深度为k的二叉树中,结点总数最多为2k2^k-1,k>=1.
对任何非空的二叉树T,如果叶结点的个数为 n0n_0,而度为2的结点数为 n2n_2,则 n0n_0= n2n_2+1.
满二叉树定义:一个深度为k且具有 2k2_k-1个结点的二叉树。
完全二叉树定义:一个深度为k具有n个结点的二叉树且其结点的排版顺序是与让深度为k的满二叉树结点编号从1到n相对应,其性质如下:
若 i!=1,则其父结点parent(i)的编号为[i/2],若i=1,则i是根节点。
若2i<=n,则左儿子left_child(i)的编号为2i,若2i>n,则i没有左儿子。
若2i+1<=n,则其右儿子right_child(i)的编号为2i+1,若2i+1>n,则i没有右儿子。
树的两种存储方式,数组和链表,例子如图:
因此可以看输出数组存储类似这种倾斜的二叉树很浪费空间,而链表则不会。
相关文章推荐
- apache ab使用
- uva 811 - The Fortified Forest(暴力+凸包)
- tslib移植
- Fedora21安装Fcitx及搜狗输入法
- ural 1109. Conference 匈牙利算法
- 九、 HBase SHELL、 JAVA 和 Thrift 客户端
- 防止表单重复提交常规方法
- Android设置虚线、圆角、渐变
- 自动生成的R.java有时不可靠
- 技术路线开始记录~
- RESTful Java client with java.net.URL
- linux嵌入式开发平台网卡驱动解决办法
- android,在fragment中使用listview,不使用listfragment
- [Android] 输入系统(三):加载按键映射
- git version 2.5.0.windows.1中文乱码问题解决方案
- uva 754 - Treasure Hunt(几何)
- Struts2笔记——自定义拦截器
- iOS 浮点数去掉小数点之后的0.00以及价格格式显示
- Struts2笔记——自定义拦截器
- 8.5.3 Optimizing InnoDB Read-Only Transactions 优化InnoDB 只读事务