二叉树及其存储结构

1.二叉树

一个有穷的结点集合 。

注意: 这个集合可以为空,若不为空,则它是由根结点和称为其左子树TL和右子树TR的两个不相交的二叉树组成。

 

二叉树的子树有左右顺序之分

2.特殊二叉树

  • 斜二叉树
  • 完美二叉树(满二叉树)
  • 完全二叉树

有n个结点的二叉树,对树中结点按从上至下、从左到右顺序进行编号,编号为i(1 ≤ i ≤ n)结点与满二叉树中编号为 i 结点在二叉树中位置相同

3.二叉树几个重要性质

  1. 一个二叉树第i层的最大结点数为:2 ^(i-1) ; i>=1;

  2. 深度为k的二叉树最大结点总数: ; k>=1;

  3. 对任何非空二叉树 T,若n0表示叶结点的个数、 n2是度为2的非叶结点个数,那么两者满足关系

4.操作集

//BT BinTree, Item  ElementType,重要操作有:
1、 Boolean IsEmpty( BinTree BT ): 判别BT是否为空;
​
2void Traversal( BinTree BT ):遍历,按某顺序访问每个结点;
​
3、 BinTree CreatBinTree( ):创建一个二叉树。 
​

 

5.常见的遍历


void PreOrderTraversal( BinTree BT ): 
//先序----根、左子树、右子树;
 void InOrderTraversal( BinTree BT ):
 //中序---左子树、根、右子树;
 void PostOrderTraversal( BinTree BT ):
 //后序---左子树、右子树、根
 void LevelOrderTraversal( BinTree BT ): 
 //层次遍历,从上到下、从左到右

 

posted @ 2017-11-28 16:19  im.lhc  阅读(223)  评论(1编辑  收藏  举报