资源简介 (共37张PPT)树与二叉树ABCDEGHFI树树是一种重要的非线性数据结构,直观的看,它是数据元素(在树中称之为节点)按分支关系组织起来的结构,与自然界的树很像。树日常生活中很多事物可以用树形图来表示,如家族族谱、动物分类等,如图所示树日常生活中很多事物可以用树形图来表示,如家族族谱、动物分类等,如图所示树的基本概念定义:是n(n>=0)个节点的有限集合若n=0,称为空树;若n>0,则它满足如下两个条件;1)有且仅有一个特定的称为根的节点;2)其余节点可分为m(m>=0)个互不相交的有限集合T1,T2,T3.....Tm,其中每一个集合本身又是一棵树,并称为根的子树。节点A有三棵子树节点B有两棵子树树的基本术语A节点是B节点的双亲节点B节点是A节点的孩子叶子节点B、C、D是兄弟节点1、节点(1)节点:集合中的元素(2)孩子节点(子节点):节点的子树的根称为该节点的孩子节点;(3)双亲节点(父节点) :B节点是A节点的孩子,则A节点是B节点的双亲节点;(4)兄弟节点:同一双亲的孩子节点;树的基本术语根节点分支节点叶子节点1、节点(1)根节点:没有父亲(双亲)的节点。在树中有且仅有一个根节点。(2)分支节点:除根节点外,有孩子的节点称为分支节点。(3)叶节点:没有孩子的节点称为树叶。根节点到每一个分支节点或叶节点的路径是唯一的路径。根节点的度为3B节点的度为2叶子节点度为0树的基本术语3、树基本属性(1)节点层:根节点的层定义为1;根的孩子为第二层节点,依此类推(2)树的深度:树中最大的节点层(3)节点的度:节点子树的个数(4)树的度: 树中最大的节点度第1层第2层第3层第4层树的深度树的特点非空树(n>0)的特点:(1)有且仅有一个根节点(2)除了根节点外,任何一个节点都有且仅有一个前驱(3)每个节点可以有0个或多个后继。根节点分支节点叶子节点练一练 一(1)该树共有 节点。(2)根节点的名称是 ,它有 个孩子节点。(3)节点B、C、D的度分别是,该树的度 。(4)该树 个分支节点, 个叶子节点。(5)节点H的层数 ,树的深度 。(6)节点B的父节点 、兄弟节点 、孩子节点 。13321335734AC、DE、FA二叉树二叉树是n(n≥0)个节点的有限集合:① n = 0时,二叉树是一棵空树。。② 当n ≠ 0时,二叉树是由一个根节点(N)和两个互不相交的集合被称为根的左子树(L)和右子树(R)组成。左子树和右子树又分别是一棵二叉树。二叉树的基本概念节点A的右子树①每个节点至多只有两棵子树。②左右子树不能颠倒二叉树的特点节点A的右子树二叉树的五种基本形态(a)空二叉树AAB(c)根和左子树A(b)根和空二叉树AC(d)根和右子树ACB(e)根和左右子树①二叉树第i层至多有(i≥1)二叉树的性质应用:(1)如图所示,第1层上最多只有 个节点;第2层上最多只有 个节点,以此类推,第i层上最多只有 个节点。12②深度为k的二叉树多有(i≥1)二叉树的性质应用:根据性质①可知,第1层节点数最多为20。第2层节点数最多为21,以此类推,深度为k的二叉树节点最多有20+21+22+……+2k=2k-1(2)某二叉树深度为4,则该二叉树最多有 个节点。15③在任意一棵二叉树中,若度为2的节点数量为n2 ,叶子节点数为n0,则n0=n2+1(叶子节点比分支节点多一个)二叉树的性质应用:如图甲,度为2的节点数为5,叶子节点数为6;如图乙:度为2的节点数为 ,叶子节点数为 。图甲图乙56特点:①每个节点的度为2(具有两个非空子树),或者度数为0(叶子节点)②所有叶子节点都在同一层特殊都二叉树——满二叉树应用:根据二叉树性质可知:(1)满二叉树第k层上的节点数一定为 。(2)一个深度为k的满二叉树一定有 个节点。2k-12k-1特殊都二叉树——满二叉树特点:①至多只有最下两层中的节点的度小于2②最下一层的叶子节点都依次排列在该层最左边位置特殊都二叉树——完全二叉树应用:根据二叉树性质可知:(1)一棵深度为k的完全二叉树,第k-1层的节点个数为 。第k层的节点数 (填关系运算符) 2k-1 。(2)已知某完全二叉树有200个节点,则该二叉树的高度为 。2k-2<=8特殊都二叉树——完全二叉树20+21+22+23+24+25+26=12727=128满二叉树完全二叉树完全二叉树非完全二叉树非完全二叉树练一练 二对二叉树各个节点进行访问,即是遍历操作。1、前序遍历(根 左 右)先访问根节点,再访问左子树,最后访问右子树。如右图的前序遍历顺序为:A-B-C2二叉树的基本遍历1ABC2、中序遍历(左 根 右)先访问左子树,再访问根节点,最后访问右子树。如右图的中序遍历顺序为:B-A-C二叉树的基本遍历12ABC3、后序遍历(左 右 根)先访问左子树,再访问右子树,最后访问根节点。如右图的后序遍历顺序为:B-C-A二叉树的基本遍历12ABC练一练 三ABCEGFDABCEGKFIJDH1、2、请写出下面两道题的前序遍历、中序遍历、后序遍历。练一练 三A-B-D-E-C-F-G1、前序遍历(根 左 右)ABCEGFD124536练一练 三D-B-E-A-F-C-G1、中序遍历(左 根 右)ABCEGFD123456练一练 三D-E-B-F-G-C-A1、后序遍历(左 右 根)ABCEGFD1235462、前序遍历(根 左 右)A-B-D-H-E-C-F-I-G-J-KABCEGKFIJDH12345678910练一练 三2、中序遍历(左 根 右)D-H-B-E-A-I-F-C-J-G-KABCEGKFIJDH12345689107练一练 三2、后序遍历(左 右 根)H-D-E-B-I-F-J-K-G-C-AABCEGKFIJDH12345789610练一练 三表达式树树结构表示算数表达式:内部节点来表示运算符,叶子节点来表示运算数。例如 3-1—13T如何构建3-1的树结构T:1)创建一棵树“T”,树根是“-”2)为T插入左边的子节点,内容是“3”3)为T插入右边的子节点,内容是“1”表达式树复杂一些的算数表达式 5+(3-1)—13T如何构建5+(3-1)的树结构T:1)创建一棵树“T”,树根是2)为T插入左边的子节点,内容是3)为T插入右边的子节点,内容是右子节点记为R4)为R插入左边的子节点,内容是5)为R插入右边的子节点,内容是+5“+”“5”“-”“3”“1”R表达式树—13T+5R后序遍历序列:531-+四则运算表达式的逆波兰表示(后缀表达式)中序遍历序列:5+(3-1)四则运算表达式 中缀表达式前序遍历序列:+5-3 1四则运算表达式的波兰表示(前缀表达式)如果对这棵树进行遍历如何构建(3+4)*(9-6)的树结构T:1)创建一棵树“T”,树根是“*”2)为T插入左边的子节点,内容是“+”右子节点记为L4)为L插入左边的子节点,内容是“3”5)为L插入右边的子节点,内容是“4”3)为T插入右边的子节点,内容是“-”右子节点记为R4)为R插入左边的子节点,内容是“9”5)为R插入右边的子节点,内容是“6”练一练 四画出下面表达式的树结构,并写出创建过程。(3+4)*(9-6)—69T*R+43L 展开更多...... 收起↑ 资源预览