《树的概念》PPT课件

《树的概念》PPT课件

ID:41892533

大小:588.00 KB

页数:44页

时间:2019-09-04

《树的概念》PPT课件_第1页
《树的概念》PPT课件_第2页
《树的概念》PPT课件_第3页
《树的概念》PPT课件_第4页
《树的概念》PPT课件_第5页
资源描述:

《《树的概念》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、树的概念与遍历算法2008/03/25表达式分析与计算2表达式分析与计算3表达式分析与计算(续)4表达式分析与计算(续)5表达式分析与计算(续)678关于表达式分析与求解这个问题的本质是什么?与原来遇到的问题有什么不同?921+词典驱动到知识库建设到人工智能10本讲主要内容:树结构概念树结构的特点二叉树概念二叉树的抽象数据结构实现树的周游(遍历)11树结构概念:ABCDEFIJGH有头(根)有前驱(父节点)有后继(子节点)除了跟节点外,所有节点有唯一的父节点。每个节点有0到多个子节点。有0个子节点的节点被称为叶子节点。12树的例子家族关系行政

2、区划社会机构:公司---处---科---室书籍目录:书---章----节----小节物种分类:门---纲---类----科----目-----种13树(tree)的定义:定义:树是n(n≥0)个结点的有限集T,其中:当n=0时称为空树。有且仅有一个特定的结点,称为树的根(root)当n>1时,其余结点可分为m(m>0)个互不相交的有限T1,T2,……Tm,其中每一个集合本身又是一棵树,称为根的子树(subtree)特点:树中各子树是互不相交的集合。14树结构的表示:层次关系+划分(a)树形表示ABCDEFIJGHCDEIJFGHAB(b)文氏图1

3、5树(tree)的定义:定义:树是n(n>0)个结点的有限集T,其中:有且仅有一个特定的结点,称为树的根(root)当n>1时,其余结点可分为m(m>0)个互不相交的有限T1,T2,……Tm,其中每一个集合本身又是一棵树,称为根的子树(subtree)特点:树中至少有一个结点——根(root)树中各子树是互不相交的集合。16树结构的表示:层次化的语言结构树结构的凹入表形式层次化标记语言形式1718树结构特点:有根分层(有序)构成‘划分’除根结点,其它结点有唯一前驱。所有结点可以有零个或多个后继。数据元素之间存在一对多或多对一关系。19树的基本术语

4、:结点(node)——表示树中的元素,包括数据项及若干指向其子树的分支结点的度(degree)——结点拥有的子树数叶子(leaf)——度为0的结点孩子(child)——结点子树的根称为该结点的孩子双亲(parents)——孩子结点的上层结点叫该结点的~兄弟(sibling)——同一双亲的孩子树的度——一棵树中最大的结点度数结点的层次(level)——根为第0层,它的孩子为第1层……深度(depth)——树中结点的最大层次数。20树结构特点总结:有根分层(有序)构成‘划分’除根结点,其它结点有唯一前驱。所有结点可以有零个或多个后继。数据元素之间存在

5、一对多或多对一关系。21二叉树定义:结点的有限集合,这个集合或者为空集,或者由一个根及两棵不相交的分别称作这个根的左子树和右子树的二叉树组成。二叉树:AGFEDCBRoot22左子树右子树右子树左子树(1)空二叉树(2)只有一个根结点的二叉树。(4)有根结点和右子树(5)有根结和左,右子树(3)有根结点和左子树二叉树的基本形态23二叉树的一些数学特性性质1在非空二叉树的i层上至多有2i个结点(i≥0)。202122…2i性质2高度为k的二叉树中最多有2k+1-1个结点(k≥0)。20+21+22…+2i24二叉树的一些相关概念——满二叉树

6、如果一棵二叉树的任何结点或者是树叶结点,或有两棵非空子树,则此二叉树称作满二叉树。在满二叉树中,叶结点的个数比分支结点个数多1。N2=N0-125完全二叉树如果一棵二叉树至多只有最下面的两层结点度数可以小于2,其余各层结点度数都必须为2,并且最下面一层的结点都集中在该层最左边的若干位置上,则此二叉树称为完全二叉树。 完全二叉树不一定是满二叉树。GCABDE不是完全二叉树26完全二叉树的重要特性对于具有n个结点的完全二叉树,如果按照从上(根结点)到下(叶结点)和从左到右的顺序对二叉树中的所有结点从0开始到n-1进行编号,则对于任意的下标为i的结点,

7、有:(1)如果i=0,是根结点。如果i>0,则其父结点的下标为i/2;(2)如果2i+1≤n-1,则下标为i的结点的左子结点的下标为2i+1;否则,i结点没有左子结点:(3)如果2i+2≤1,则下标为i的结点的右子结点的下标为2i+2。否则,i的结点没有右子结点。0654321727二叉树结构的ADT定义28链接结构的二叉树的定义(简单处理)29建立一个空二叉树BinTreecreateEmptyTree(void){BinTreet=(BinTree)malloc(sizeof(BinTree));if(t!=NULL)return(t);

8、elseprintf("Outofspace!!");return(t);}30建立一个带左右子树的二叉树BinTreeconsBi

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。