一、二叉树的定义和特性
1.二叉树的定义
是一种树形结构,每个结点最多有两棵子树
2.特殊二叉树
满二叉树:树中的每一层都含有最多的结点,除叶子结点外每个结点度数都为2
完全二叉树:每一层都为满的,最后一层从左至右依次填入
二叉排序树:左子树所有结点关键字均小于根结点关键字,右子树所有节点关键字均大于根结点关键字,左子和右子树又各是一棵 二叉排序树
平衡二叉树:树上任一结点的左子树和右子树的深度之差不超过1
3.二叉权的性质
(1)非空二叉树上叶子结点数等于度为2的结点数加1
(2)非空二叉树上第K层上至多有2的(k-1)次方个结点
(3)高度为h的二叉树至多有2的h次方减1个结点
二、二叉的存储结构
1.顺序存储
将完全二叉树上编号为i的结点元素存储至数组下标为i-1的分量中,0可以表示不存在的点
2.链式存储
使用一个链表来存储一棵二叉树,树中每个结点用链表的一个链结点来存储,至少包含3个域:数据,左指针,右指针
二叉树链式存储结构:
typedef struct _node_{
int data;
struct _node_ *lchild, *rchild;
}node;