八、树和二叉树
一、树的定义 树的定义 树是一种非线性的数据结构 树是由 n (n≥0) 个结点组成的有限集合 如果 n = 0,称为空树 ; 如果 n > 0,则 : 有一个特定的称之为根 (root) 的结点,它只有直接后继,但没有直接前驱 除根以外的其它结点划分为 m (m≥0) 个互不相交的有限集合T0, T1, …,Tm-1, 每个集合又是一棵树, 并且称之为根的子树(subTree) 树家族中的概念 树的结点包含一个数据及若干指向子树的分支 结点拥有的子树数称为结点的度 度为0的结点称为叶结点 度不为0的结点称为分支结点 树的度定义为所有结点中的度的最大值 结点的直接后继称为该结点的孩子 相应的,该结点称为孩子的双亲 结点的孩子的孩子的…… 称为该结点的子孙 相应的,该结点称为子孙的祖先 同一个双亲的孩子之间互称兄弟 结点的层次 根为第1层 根的孩子为第2层 …… 树中结点的最大层次称为树的深度或高度 如果树中结点的各子树从左向右是有次序的,子树间不能互换位置 ,则称该树为有序树 ,否则为无序树。 森林是由 n ( n≥0) 棵互不相交的树组成的集合 树的一些常用操作 创建树 销毁树 清空树 插入结点 删除结点 获取结点 获取根结点 获取树的结点数 获取树的高度 获取树的度 二、树的存储结构 树的存储结构