数据结构(树与二叉树)
一、定义 树是n(n≥0)个结点的有限集合,n=0时,称为空树。(它是一种一对多的逻辑结构) 而对任意非空树应该满足: 1)有且仅有一个特定的称为根的结点。 2)当n>1时,其余结点可分为m(m>0)个互不相交的有限集合,其中每一个集合本身又是一棵树,称为根结点的子树。 (其中A为根节点。BEF为根节点A的其中一个子树。) 观察可知树有以下两个特点: 1。树的根节点没有前驱结点,除根节点外的所有结点有且只有一个前驱结点。 2。树中所有结点可以有零个或多个后继结点 (重要结论:n个结点的树中只有n-1条边。) 二、基本术语 1)祖先结点和子孙结点 、双亲结点和孩子结点、兄弟结点 由根节点出发为了找到K,所经过的路径为: ABEK因此E、B、A均为K的祖先结点,而K为A、B、E的子孙结点 。看这样一个子树EKL,在这个子树中 K、L为E的孩子结点,而E为K、L的双亲结点,且K与L互为兄弟结点。 2)度 树中一个结点的子节点的个数称为该结点的度(如A、D的度为3,B、E的度为2,C的度为1,而F、G、H、I、J、K、L的度为0),而树中的最大度数称为树的度(容易看出该树的度为3) 3)分支结点与叶子结点 度大于0的结点称为分支结点,而度为0的结点称为叶子结点。(如A、B、C、D、E均为分支结点而F、G、H、I、J、K、L均为叶子结点。) 4)结点的层次、高度、深度 结点的层次