概念:
节点度数不超过2的树,即为二叉树。
h表示树高,n表示节点个数,我们有一下结论:
- n=h+1 时,二叉树退化成一个单链
- n=2^(h+1)-1 时,为满二叉树
二叉树是由节点组成的结构,其中每个节点具有3个分量:
数据元素
左指针
右指针
如果二叉树是空的,它由空指针表示。
template<typename T>
class BinaryTree {
T data;
BinaryTree *left, *right;
public:
BinaryTree(T node_data ) {
data = node_data;
left = NULL;
right = NULL;
}
};
二叉树的一些性质:
- 高度为h的满二叉树有2^(h+1)-1个节点
- 满二叉树高度为h的节点有2^h个
二叉树的遍历:
先序遍历:中 | 左 | 右 (V | L | R)
中序遍历:左 | 中 | 右 (L | V | R)
后序遍历:左 | 右 | 中 (L | R | V)
遍历实现: