数据结构与算法--数和二叉树1.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构与算法--数和二叉树1

引子 OS中文件夹和文件是怎样的关系 引子 为了降低某些算法的时间复杂度,哪种数据结构更适合存储待分析的数据? 例如:POJ 1151 Atlantis 给定一些矩形,其顶点坐标是浮点数,可能互相重叠,问这些矩形覆盖到的面积是多大。 引子 博弈问题中的棋盘格局,是如何实现的? 一、树 定义:树是n(n=0)个结点的有限集合 有且仅有一个称为根root的结点 一、树 其余结点可分为m(m0)个互不相交的有限集合T1,T2,…,Tm,而且这些集合中的每一集合都本身又是一棵树,称为根的子树。 树的术语 二、二叉树 定义: 或为空树,或由根及两棵不相交的左子树、右子树构成,并且左、右子树本身也是二叉树。 说明 1、二叉树中每个结点最多有两棵子树;二叉树每个结点度小于等于2; 2、二叉树的左、右子树不能颠倒---有序树 实战 1、请画出具有三个结点的树和具有三个结点的二叉树的所有不同形态。 举例 用二叉树表示表达式: 举例 双人比赛的所有可能的结局。 规则:开局连赢两局,或五局三胜 三、二叉树的性质 性质1:在二叉树的第i层上最多有2i-1个结点(i≥1) 三、二叉树的性质 性质2 :深度为k的二叉树最多有 2k-1个结点 三、二叉树的性质 性质3 :设二叉树叶子结点数为n0,度为2的结点n2,则n0 = n2 +1 特殊:满二叉树 定义: 如果深度为k的二叉树,有2k-1个结点则称为满二叉树。 特殊:完全二叉树 定义: 如果一棵二叉树只有最下一层结点数可能未达到最大,并且最下层结点都集中在该层的最左端,则称为完全二叉树。 实战 2、现有一棵结点总数为20的二叉树,它含有4个度为2的结点,由此可知其叶子结点数为? A 20 B 16 C 11 D 5 3、一棵完全二叉树上有1001个结点,其中叶子结点数为? A 250 B 500 C 254 D 505 E 以上均错误 四、二叉树的顺序存储 对完全二叉树和满二叉树,将结点按顺序编号,存储到一维数组中。 四、二叉树的顺序存储 但是对其他的二叉树可行否? 五、二叉树的链式存储 二叉链表中每个结点包含三个域: 数据域、左指针域、右指针域。 六、二叉树的遍历 遍历:按某种搜索路径访问二叉树的每个结点,而且每个结点仅被访问一次。 遍历是各种数据结构最基本的操作,许多其他的操作可以在遍历基础上实现。 中序遍历 LTR 实战 二叉树的遍历可分解为: 访问根、遍历左子树和遍历右子树 令:L:遍历左子树 T:访问根结点 R:遍历右子树 则有六种遍历方法: 约定先左后右,则只有3种: T L R:先序遍历 L T R:中序遍历 L R T:后序遍历 A E D C B F G 分析问题 若二叉树非空 (1)访问根结点; (2)先序遍历左子树; (3)先序遍历右子树; 先序遍历序列:A,B,D,E,G,C,F 例:先序遍历右图所示的二叉树 (1)访问根结点A (2)先序遍历左子树:即按 T L R 的顺序遍历左子树 (3)先序遍历右子树:即按 T L R 的顺序遍历右子树 A E D C B F G 先序遍历 TLR 若二叉树非空 (1)中序遍历左子树 (2)访问根结点 (3)中序遍历右子树 中序遍历序列: D,B,G,E,A,C,F 例:中序遍历右图所示的二叉树 (1)中序遍历左子树:即按 L T R 的顺序遍历左子树 (2)访问根结点A (3)中序遍历右子树:即按 L T R 的顺序遍历右子树 A E D C B F G 若二叉树非空 (1)后序遍历左子树 (2)后序遍历右子树 (3)访问根结点 后序遍历序列: D,G,E,B,F,C,A 例:后序遍历右图所示的二叉树 (1)后序遍历左子树:即按 L R T 的顺序遍历左子树 (2)后序遍历右子树:即按 L R T 的顺序遍历右子树 (3)访问根结点A A E D C B F G 后序遍历 LRT 4、已知二叉树的前序遍历为abcdefgh,中序遍历为bcafegdh,则其后序遍历为? 5、已知二叉树有11个结点,其前序遍历为_b_f_iceh_g,中序遍历为d_kfia_ejc_,后序遍历为_k_fbhj_g_a,请画出这棵二叉树的逻辑结构图。 本讲小结 (1)二叉树的存储方式 (2)二叉树的三种遍历方法 注意:请及时完成数组和广义表的作业。 并提前预作实验2。 * P129,char String::operator

文档评论(0)

wyjy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档