一、树
非线性结构
根在顶层 root
叶在下面
除了上面的一个根节点都叫子节点(统称为节点)
根节点是唯一一个没有入边的节点
除了根节点外每个节点都有且只有一条与其他节点相连的入边(指向该节点的边),每个节点可能有许多跳出边(从该节点指向其他节点的边)
路径:有序排列,路径是唯一的
子节点集:父节点的所有“孩子”
父节点:
兄弟节点:同一个节点的所有子节点互为兄弟节点
子树:一个父节点的某个子节点的所有边和后代节点所构成的集合叫做这个父节点的子树。
叶节点:没有子节点的节点
层数:一个节点的层数是指从根节点到此节点的路径中的边的数目
高度:层数的最大值
树的特征:
要么为空树,要么必须有根节点
父节点的唯一性(除了根节点)
可以沿着唯一的路径从根节点到每一个节点
如果这个树的每个节点都之多有两个子节点,称为二叉树
二、二叉树
定义:
是由n(n>=0)个结点组成的有限集合、每个节点最多有两个子树的有序树。它或者是空集,或者是由一个根和称为左、右子树的两个不相交的二叉树组成。
度:节点的出边数(0,1,2)
树中所有节点的度的最大值称为树的度
二叉树的度是2
二叉树的特点:
二叉树是有序树,即使只有一个子树,也必须区分左右子树
二叉树的每个节点的度只能是0,1,2
二叉树中所有节点的5中形态:空节点,无左右子树的节点,只有左子树的节点,只有右子树的节点,具有左右子树的节点
二叉树的性质:
二叉树的第i层至多有2i-1个结点
对任何一颗二叉树T,如果叶子结点数为N0,度为2的节点数为N2,则N0=N2+1
叶子数 = 度为2的边数 + 1
边数 = 节点数 - 1
满二叉树:每一层节点数都满
完全二叉树:除了最后一层外其余层都是满的,并且最后一层或者是满的,或者是右边缺少连续若干个结点
满二叉树是完全二叉树的特例