树是一种表达数据之间层次关系的数据结构,树中的每个节点有0个或者多个子节点,但只有一个父节点,父节点为空的节点为根节点,一棵树只有一个根节点。
树结构的相关概念:
**数的度:**一个节点含有的子树的个数成为该节点的度,一颗树中最大的节点的度成为整颗数的度;
**叶节点:**度为0的节点成为叶节点;
**根节点:**没有父节点的节点就是跟节点;
**树的高度:**从跟节点开始,每多一级子节点,树的层次就加1,一棵树的最大层次数就是这个树的高度;
**兄弟节点:**具有相同父节点的子节点互成为兄弟节点;
根据每个节点的子节点的数量,又可以将树分为二叉树和多叉树。
有序的二叉树也称为平衡二叉树:
1.如果左子树不为空,则左子树上所有的节点的值都小于根节点的值;
2.如果右子树不为空,则右子树上所有的节点的值都大于根节点的值。
红黑树:
1.每个节点非红即黑;
2.根节点是黑的;
3.每个叶子节点时黑的;
4.如果一个节点是红的,那么它则左右两个孩子都是黑的;
5.对于任意节点而言,其到叶子节点数或NULL指针的每条路径都包含相同数目的黑节点。