树与二叉树的性质

来源:互联网 发布:mac双系统卸载win7 编辑:程序博客网 时间:2024/04/30 06:49

树的性质

一、结点的度是指子树的数量,树的度指所有节点的度的总和。

二、树的深度是指树的最大层数,根结点是第一层。

三、树的数据结构:树结点存储结构,树的存储结构(数组指针)。双亲(data,parent)、孩子(firstChild,next,rightChild)、孩子兄弟(firstChild,nextsubit)


二叉树性质

1、具有n个节点的完全二叉树的深度为(logn)+1

2、第i个节点的双亲位置  i/2,左孩子2i,右孩子2i+1.

3、二叉树节点的度只有0,1,2,分别用n0,n1,n2表示不同度的节点,那么n0 = n2 +1,推导是通过树的分支树的,一个节点会有一个入分支,那么设总的节点为n,那么n-1 = 2*n2+n1  由于 n = n0 + n1 + n2 合并得n0 = n2 +1.

4、根据层数和深度计算节点数,第i层最多有2的i-1次方个节点,深度为i的树一共有2的i次方减1个节点,要注意前后问的问题不同,一个是树里的第几层,一个是树的全部层数加上的节点数。


5、二叉树的存储结构:{data,rightChild,leftChidl,}

6、遍历

先序:先遍历所有根,然后是左子树,最后是右子树。

中序:所有左子树,后根,最后右子树。

后序:所有左子树,后右字树,最后根。

层次:每层从左边开始遍历。


7、哈弗曼树

首先树是带权的,而且从上至下,权值不断增大。

构造哈弗曼树:先将权值按小到大排序,将头两个小的权值构成一个N1节点的左右节点,并用N1的值替代这两个节点的值,接着再找出数组中最小的两个权值组成一个节点,最后所有节点被练成一棵树

应用:哈弗曼编码





0 0
原创粉丝点击