树是一种非线性的数据结构,它是由n(n>=0)有限结点组成一个具有层次关系的集合。它具有以下特点:每个结点有零个或多个子结点;没有父结点的结点称为根结点;每一个非根结点有且只有一个父结点;除了根结点以外,每个子结点可以分为多个不相交的子树。
**结点的度:**一个结点含有的子树的个数为该结点的度;
**树的度:**一棵树中,最大的结点的度称为树的度;
**叶子结点或终端结点:**度为0的结点称为叶结点;
**双亲结点或父结点:**若一个结点含有子结点,则这个结点成为其子结点的父结点;
**孩子结点或子结点:**一个结点含有的子树的根结点成为该结点的子结点;
**根结点:**一棵树中,没有双亲结点的结点;
**结点的层次:**从根结点开始定义,根为第一层,根的子结点为第2层,以此类推;
**树的高度或深度:**树中结点的最大层次
**非终端结点或分支结点:**度不为0的结点;
**兄弟结点:**具有相同父结点的结点;
**堂兄弟结点:**双亲在同一层的结点;
**结点的祖先:**从根到该结点所经分支上的所有结点;
**子孙:**以某结点为根的子树中任一结点都称为该结点的子孙;
**森林:**由m(m>=0)棵互不相交的树的集合。
**二叉树:**一颗二叉树是结点的一个有限集合,该集合为空,或者是由一个根结点加上两棵别称为左子树和右子树的二叉树组成。特点:每个结点最多有两棵子树,即二叉树不存在度大于2的结点;二叉树的子树有左右之分,其子树的次序不能颠倒。
**满二叉树:**一个二叉树,如果每一层的结点数都达到最大值,则称这个二叉树就是满二叉树。也就是说,如果一个二叉树的层数为k,且结点总数是(2^k)-1,则它就是满二叉树。
**完全二叉树:**是效率很高的数据结构,它是由满二叉树而引出来的。对于深度为k的,有n个结点的二叉树,当且仅当每一个结点都与深度为k的满二叉树中编号从1至n的结点一一对应时称之为完全二叉树。注意:满二叉树是一种特殊的完全二叉树。