第6章 树和二叉树1-树地定义和性质.ppt
文本预览下载声明
数据结构讲义第6章 树和二叉树 黄可坤 嘉应学院 1 树的定义 树是一类重要的非线性数据结构,是以分支关系定义的层次结构。 定义 定义:树(tree)是n(n0)个结点的有限集T,其中: 有且仅有一个特定的结点,称为树的根(root) 当n1时,其余结点可分为m(m0)个互不相交的有限集T1,T2,……Tm,其中每一个集合本身又是一棵树,称为根的子树(subtree) 特点: 树中至少有一个结点——根 树中各子树是互不相交的集合 基本术语 结点(node)——表示树中的元素,包括数据项及若干指向其子树的分支 结点的度(degree)——结点拥有的子树数 叶子(leaf)——度为0的结点 孩子(child)——结点子树的根称为该结点的孩子 双亲(parents)——孩子结点的上层结点叫该结点的~ 兄弟(sibling)——同一双亲的孩子 树的度——一棵树中最大的结点度数 结点的层次(level)——从根结点算起,根为第一层,它的孩子为第二层…… 深度(depth)——树中结点的最大层次数 森林(forest)——m(m?0)棵互不相交的树的集合 树的表示 树形表示 图形表示法: 2 二叉树 定义 定义:二叉树是n(n?0)个结点的有限集,它或为空树(n=0),或由一个根结点和两棵分别称为左子树和右子树的互不相交的二叉树构成。 特点 每个结点至多有二棵子树(即不存在度大于2的结点) 二叉树的子树有左、右之分,且其次序不能任意颠倒 基本形态 二叉树性质 性质1: 几种特殊形式的二叉树 满二叉树 定义:一棵深度为k且有2k-1个结点的二叉树成为~ 特点:每一层上的结点数都是最大结点数 完全二叉树 定义:深度为k,有n个结点的二叉树当且仅当其每一个结点都与深度为k的满二叉树中编号从1至n的结点一一对应时,称为~ 特点 叶子结点只可能在层次最大的两层上出现 对任一结点,若其右分支下子孙的最大层次为L,则其左分支下子孙的最大层次必为L 或L+1 性质 性质4: 性质5:如果对一棵有n个结点的完全二叉树的结点按层序编号,则对任一结点i(1?i?n),有: 如果i=1,则结点i是二叉树的根,无双亲;如果i1,则其双亲是?i/2? 如果2in,则结点i无左孩子;如果2i?n,则其左孩子是2i 如果2i+1n,则结点i无右孩子;如果2i+1?n,则其右孩子是2i+1 二叉树的存储结构 顺序存储结构 实现:按满二叉树的结点层次编号,依次存放二叉树中的数据元素 特点: 结点间关系蕴含在其存储位置中 浪费空间,适于存满二叉树和完全二叉树 链式存储结构 二叉链表 练习 一、下面是有关二叉树的叙述,请判断正误。 ( )1. 若二叉树用二叉链表作存贮结构,则在n个结点的二叉树链表中只有n—1个非空指针域。 ( )2.二叉树中每个结点的两棵子树的高度差等于1。 ( )3.二叉树中每个结点的两棵子树是有序的。 ( )4.二叉树中每个结点有两棵非空子树或有两棵空子树。 ( )5.二叉树中每个结点的关键字值大于其左非空子树(若存在的话)所有结点的关键字值,且小于其右非空子树(若存在的话)所有结点的关键字值。 ( )6.二叉树中所有结点个数是2k-1-1,其中k是树的深度。 ( )7.二叉树中所有结点,如果不存在非空左子树,则不存在非空右子树。 ( )8.对于一棵非空二叉树,它的根结点作为第一层,则它的第i层上最多能有2i-1个结点。 ( )9.用二叉链表法(link-rlink)存储包含n个结点的二叉树,结点的2n个指针区域中有n+1个为空指针。 ( )10. 具有12个结点的完全二叉树有5个度为2的结点。 二、填空。 1. 由3个结点所构成的二叉树有 种形态。 2. 一棵深度为6的满二叉树有 个分支结点和 个叶子。 3. 一棵具有257个结点的完全二叉树,它的深度为 。 4.??? 设一棵完全二叉树有700个结点,则共有 个叶子结点。 5. 设一棵完全二叉树具有1000个结点,则此完全二叉树有 个叶子结点,有 个度为2的结点,有 个结点只有非空左子树,有 个结点只有非空右子树。 6. 【严题集6.7③】 一棵含有n个结点的k叉树,可能达到的最大深度为 ,最小深度为 。 * * — 树的定义和性质 A 只有根结点的树 A B C D E F G H I J K L M 有子树的树 根 子树 A B C D E F G H I J K L M 结点A的度:3 结点B的度:2 结点M的度:0 叶子:K,L,F,G,M,I,J 结
显示全部