树形结构介绍
2016-07-12 本文已影响520人
橙小汁
1.与树型结构有关的概念:
![](https://img.haomeiwen.com/i2077144/45a0759b2c333ed8.png)
结点的度->结点拥有的子树,度为零的结点称为叶子节点,例如图中A的度为3,C的度为1,F的度为0。
树的度->树内各结点的度的最大值,例如上图中树的度为3。
树的深度(高度)->树中结点的最大层次,也是树的最大结点度数+1,例如上图中树的深度为4。
2.二叉树
![](https://img.haomeiwen.com/i2077144/9b8e8c09858504a3.png)
![](https://img.haomeiwen.com/i2077144/446b976a3f3121c9.png)
(1)与二叉树有关的性质:
二叉树从0层开始,第i层最多有2i(2的i次方)个结点(i >= 0 );
深度为K的二叉树至多有2k-1(2的k次方减1)个节点(K >= 1);
任何一颗二叉树,其终端结点数n0与其度为2的结点数n2之间满足:n0 = n2+1;( 解释: 有n个结点的二叉树,其边数n-1 = 0*n0+1*n1+2*n2,又有n = n0+n1+n2,解这两式,就会得到上述性质);
具有n个结点的完全二叉树的深度为(log2n)+1;
(2)代码实现
1、定义二叉树:
(1)二叉树结构体的定义:
![](https://img.haomeiwen.com/i2077144/69cb3f388e27eed5.png)
(2)购买结点,释放结点
![](https://img.haomeiwen.com/i2077144/0aa293d7cf6058d0.png)
(3)遍历二叉树,前序遍历(根左右),中序遍历(左根右),后序遍历(左右根),分别有递归的和非递归(用栈实现)的。层次遍历用队列实现,只有非递归的;
![](https://img.haomeiwen.com/i2077144/0e0d680d585a2564.png)
![](https://img.haomeiwen.com/i2077144/28868948da19adda.png)
![](https://img.haomeiwen.com/i2077144/1001399e68aace15.png)
![](https://img.haomeiwen.com/i2077144/2d86b37826d7acfb.png)
![](https://img.haomeiwen.com/i2077144/c462d04a060fa677.png)
(4)求树的结点的个数,树的深度
![](https://img.haomeiwen.com/i2077144/bca34cbb7c5a8040.png)
(5)一般化创建树
![](https://img.haomeiwen.com/i2077144/baae92caa7c26b81.png)
![](https://img.haomeiwen.com/i2077144/78b46d7db8b5ccae.png)
![](https://img.haomeiwen.com/i2077144/d1ab9766749ef2ec.png)
(6)在二叉树中寻找特定的值,寻找特定值的父节点,在中序遍历序列中找一个数的下标
![](https://img.haomeiwen.com/i2077144/db84b223b570bc9e.png)
![](https://img.haomeiwen.com/i2077144/6c2fb171fecc46ee.png)
(7)通过前序中序创建树,通过中序后序创建树
![](https://img.haomeiwen.com/i2077144/dda4a4bd3635f40e.png)
![](https://img.haomeiwen.com/i2077144/ee4cc5af5d7270bc.png)
(8)中序遍历、后序遍历、层次遍历的另一种实现
![](https://img.haomeiwen.com/i2077144/e0bbea4faff2a45f.png)
![](https://img.haomeiwen.com/i2077144/0d991f20105ffb8d.png)
![](https://img.haomeiwen.com/i2077144/f2e9cfa4e5bc8fb6.png)
![](https://img.haomeiwen.com/i2077144/64bb9db281610356.png)
(9)销毁树
![](https://img.haomeiwen.com/i2077144/1a9eec26bf49a735.png)