1.定义:把满足以下两个条件的树型结构叫做二叉树(Binary Tree):
- (1) 每个结点的度都不大于 2;
- (2) 每个结点的孩子结点次序不能任意颠倒。
由此定义可看出,一个二叉树中的每个结点只能含有 0、1 或 2 个孩子,而且每个孩子有左右之分。位于左边的孩子叫做左孩子,位于右边的孩子叫做右孩子。


性质1:在二叉树的第 i 层上至多有 2^(i-1)个结点(i≥1)。 |

性质2:深度为 k 的二叉树至多有 2^k-1 个结点(k≥1)。 |

性质3:对任意一棵二叉树 T,若终端结点数为 n0,而其度数为 2 的结点数为 n2,则 n0= n2+1 |


满二叉树的顺序表示,即从二叉树的根开始,层间从上到下,层内从左到右,逐层进行编号(1,2,···,n)

性质4:具有 n 个结点的完全二叉树的深度为 [log2 n]+1 |


二叉树是非线性的,每一个结点最多有两个直接后继



typedef struct Node
{
DataType data;
struct Node *LChild;
struct Node *RChild;
} BiTNode, *BiTree;

若一个二叉树含有 n 个结点,则它的二叉链表中必含有 2n 个指针域,其中必有 n+1 个空的链域。
证明:分支数目 B=n-1,即非空的链域有 n-1 个,故空链域有 2n-(n-1)=n+1 个。