首页 > 代码库 > 树的基本概念

树的基本概念

基本术语


技术分享

  • 树中一个节点子节点的个数称为该节点的度,树中节点最大的度称为称为树的度。如B的度为2,D的度为3,树的度为3
  • 树中节点的子树从左到右有次序的,不能交换的树称为有序树,反之称为无序树
  • 树中两个节点之间的路径是由这两个节点所经过的节点序列构成的,路径的长度是路径上边的个数
  • 树的路径长度是从根节点到每个节点的路径长度总和

二叉树的概念


二叉树是有序树,若将其左右子树颠倒,就称为另一颗不同的二叉树。

满二叉树

一棵高度为h,并且含有2^h-1个节点的二叉树被称为满二叉树。对满二叉树按层序编号:从根节点起(根节点编号为1),自上而下,自左而右。这样每个节点对应一个编号,对于编号为i的节点,其双亲节点的编号为i/2(取下限),其做孩子节点编号为2i,有孩子节点编号为2i+1

完全二叉树

树中节点如果有右孩子那么一定有左孩子,去掉树的最后一层一定是一个满二叉树。

技术分享

二叉排序树

左子树上的每个节点的关键字都小于根节点关键字;右子树上每个节点的关键字都大于根节点的关键字。左右子树都是一棵二叉排序树。

平衡二叉树

树上任意一个节点其左子树的高度与右子树的高度之差不超过1

二叉树性质


 

  • 非空二叉树上叶子节点数等于度为2的节点数加1,即N0 = N2+1

  • 非空二叉树上第K层最多有2^(k-1)个节点

  • 具有N个(N>0)节点的完全二叉树的高度为log(N+1)的上限 

二叉树的存储


二叉树可以采用顺序存储也可以采用链式存储。完全二叉树和满二叉树采用顺序存储比较合适,而一般的二叉树都采用链式存储。

 

树的基本概念