C语言的数据结构——二叉树

线性结构和树型结构的结构特点:
线性结构:
C语言的数据结构——二叉树
第一个元素无前驱
最后一个元素无后继
其他数据元素有且只有一个前驱和一个后继
树型结构:
C语言的数据结构——二叉树
根结点无前驱
多个叶子结点无后继
其他数据元素只有一个前驱和多个后继

二叉树的性质:
二叉树是n(n≥0)个结点的有限集合。
当n=0时,称为空二叉树;
当n>0时,该集合由一个根结点及两颗互不相交的,左子树和右子树的二叉树组成。
由此推理二叉树的定义:
1.每个结点的度都不大于2;
2.每个结点的孩子结点次序不能任意颠倒。(即使只有一个子结点,也要区分是左子树还有右子树)
C语言的数据结构——二叉树

二叉树的五种基本形态:
C语言的数据结构——二叉树
二叉树的性质:
C语言的数据结构——二叉树
C语言的数据结构——二叉树
C语言的数据结构——二叉树
特殊的二叉树:

满二叉树:C语言的数据结构——二叉树
C语言的数据结构——二叉树
完全二叉树:
C语言的数据结构——二叉树
C语言的数据结构——二叉树
再看下面这个二叉树,他就不是一个完全二叉树,因为e没有左子树,i和k中间少了j,不符合从a到k一一对应。
C语言的数据结构——二叉树
满二叉树和完全二叉树的关系:
满二叉树必为完全二叉树,而完全二叉树不一定是满二叉树。
C语言的数据结构——二叉树
C语言的数据结构——二叉树
C语言的数据结构——二叉树
C语言的数据结构——二叉树
C语言的数据结构——二叉树