1. 树的一些基本术语
- 结点的度(Degree):节点的子树个数
- 树的度: 树的所有节点中最大的度数
- 叶结点(Leaf): 度为0的结点
- 父结点(Parent): 有子树的结点是其子树的根结点的父结点
- 子结点(Child):
- 兄弟结点( Sibling):
- 路径和路径长度:
- 祖先结点(Ancestor):沿树根到某一结点路径上的所有结点都是这个结点的祖先结点
- 子孙结点(Descendant):某一结点的子树中的所有结点
- 结点的层数(Level): 规定根结点在1层
- 树的深度(Depth):树中所有结点的最大层次
2.树的表示
2.1 儿子-兄弟表示法(二叉树的由来)
template<class T>
class ChildSibling
{
public:
T m_key;
ChildSibling *m_firstChild;
ChildSibling *m_nextSibling;
};
3.二叉树的定义
3.1 二叉树是树的度为2的树
3.2 二叉树的类型:
- 斜二叉树(Skewed Binary Tree)
- 完美二叉树(Perfect Binary Tree)/满二叉树(Full Binary Tree)
- 完全二叉树(Complete Binary Tree)