树:
结点的度:结点所拥有的子树的个数。
树的度:树中各结点度的最大值。
叶子结点:度为0的结点,也称为终端节点。
分支节点:度不为0的结点,也成为非终端节点。
结点所在的层数:根节点的层数为1;对其余任何结点,若某结点在第k层,则其孩子结点在第k+1层。
树的深度:树中所有节点的最大层数,也称高度。
树的访问:前序遍历,后序遍历,层序遍历
树的存储:
顺序存储:
双亲表示方法
template <class T>
struct PNode{
T data; //数据域
int parent; //指针域,双亲在数组中的下标
}
双亲、孩子表示方法
链式存储:
多重链表式法
指针域的个数等于树的度数(缺点:浪费空间)
指针域的个数等于该结点的度数(缺点:结点的结构不一致)
孩子链表表示法
孩子结点:
struct CTNode
{
int child;
CTNode *next;
};
表头结点:
template <class T>
struct CBNode
{
T data;</