数据结构:树和二叉树

一、树的定义和基本术语

  • 把数据元素称为结点
  • 树是n(n>=0)个结点的有限集合。n=0时称为空树。
  • 有且仅有一个根节点。n>1时,除了根结点之外的其余结点被分成m棵互不相交的子树。
  • 结点的度:某结点拥有的子树的个数。
  • 树的度:每个结点的度的最大值

二叉树的逻辑结构

1.定义

  • 二叉树的每个结点最多有两棵子树
  • 二叉树是有序的
  • 满二叉树:叶子(度为0)只能出现在最下一层、只有度为0和度为2的结点
  • 完全二叉树:叶子结点只能出现在最下两层、最下层的叶子结点都集中在二叉树的左侧;如果有度为1的结点,只能有一个,且该结点只有左孩子。(请查找一个图来看)

2.二叉树的基本性质

1. 二叉树的第i层上最多有2 ^i-1 个结点(1,2,4,8...)
2. 在一棵深度为k的二叉树中,最多有2^k -1 个结点,最少有k个结点。(1+2+4+8...)
3. 在一棵二叉树中,如果叶子结点的个数为n0,度为2的结点个数为n2,则:n0 = n2 + 1
4. 具有n个结点的完全二叉树的深度为log2 n (向下取整) + 1
5. 对一棵具有n个结点的完全二叉树中的结点,从1开始按层序编号,则对于任意编号i(1<=i<=n)的结点,有:
如果结点i有左孩子,左孩子为2i;如果结点i有右孩子,右孩子为2i+1;如果结点i有双亲,那么双亲编号为i/2(向下取整)。

猜你喜欢

转载自www.cnblogs.com/juzijuziju/p/11880305.html