- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构与算法张晓莉王苗第5章树结构课件教学.ppt
第5章 树结构 本章首先对二叉树结构进行较为深刻的讨论,然后再介绍树结构中一般意义的树和它们与二叉树之间的关系。 ⒊教学重点: ⑴二叉树的定义、逻辑特点及性质; ⑵二叉树的存储结构; ⑶二叉树的遍历方法及其算法; ⑷以遍历为基础在二叉树上实现的几种运算; ⑸哈夫曼树和哈夫曼算法; ⑹树的存储结构; ⑺森林与二叉树的转换。 ⒋教学难点: ⑴二叉树的递归定义; ⑵二叉树链式存储结构的组织方式; ⑶三种遍历的算法; ⑷二叉树上的复杂运算; ⑸哈夫曼算法及其应用; ⒌学时安排: 14学时 5.1 二叉树 5.1.1 二叉树的概念 5.1.2 二叉树的主要性质 5.1.3 二叉树的存储 5.1.4 二叉树基本运算的实现 3.二叉树的基本操作 二叉树的基本操作通常有以下几种: (1) Initiate(bt):建立一棵空二叉树。 (2) Create(x, lbt, rbt):生成一棵以x为根结点的数据域信息,以二叉树lbt和rbt为左子树和右子树的二叉树。 (3) InsertL(bt, x, parent):将数据域信息为x的结点插入到二叉树bt中作为结点parent的左孩子结点。如果结点parent原来有左孩子结点,则将结点parent原来的左孩子结点作为结点x的左孩子结点。 (4) InsertR(bt, x, parent):将数据域信息为x的结点插入到二叉树bt中作为结点parent的右孩子结点。如果结点parent原来有右孩子结点,则将结点parent原来的右孩子结点作为结点x的右孩子结点。 3.二叉树的基本操作 (5) DeleteL(bt, parent):在二叉树bt中删除结点parent的左子树。 (6) DeleteR(bt, parent):在二叉树bt中删除结点parent的右子树。 (7) Search(bt, x):在二叉树bt中查找数据元素x。 (8) Traverse(bt):按某种方式遍历二叉树bt的全部结点。 5.1.2 二叉树的主要性质 性质1 一棵非空二叉树的第i层上最多有2i-1个结点(i≥1)。该性质可由数学归纳法证明。证明略。 性质2 一棵深度为k的二叉树中,最多具有2k-1个结点。 证明 设第i层的结点数为xi(1≤i≤k),深度为k的二叉树的结点数为M,xi最多为2i-1,则有: 5.1.3 二叉树的存储 1.顺序存储结构 所谓二叉树的顺序存储,是用一组连续的存储单元存放二叉树中的结点。一般是按照二叉树结点从上至下、从左到右的顺序存储。 因此,依据二叉树的性质,完全二叉树和满二叉树采用顺序存储比较合适,树中结点的序号可以唯一地反映出结点之间的逻辑关系,这样既能够最大可能地节省存储空间,又可以利用数组元素的下标值确定结点在二叉树中的位置,以及结点之间的关系。 5.1.4 二叉树基本运算的实现 (1) Initiate(bt):建立一棵空的二叉树bt,并返回bt。 二叉树带不带头结点,可根据具体需要而定。 【算法 5-1(a)】建立一棵空的带头结点的二叉树 BiTree Initiate () /*初始建立一棵空的带头结点的二叉树*/ { BiTNode *bt; bt=(BiTNode *)malloc(sizeof(BiTNode)); bt?lchild=NULL bt?rchild=NULL; return bt; } 若要建立不带头结点的二叉树,可描述如下: 【算法 5-1(b)】建立一棵空的不带头结点的二叉树 BiTree Initiate () /*初始建立一棵空的不带头结点的二叉树*/ { BiTNode *bt; bt=NULL; return bt; } 在主函数中,可以通过如下方式调用Initiate函数: main ( ) {BiTree t ; /*定义根结点指针变量*/ t =Initiate (); …… } (3) InsertL(bt, x, parent): 【算法5-3】在二叉树bt中的parent所指结点和其左子树之间插入数据元素为x的结点 BiTree InsertL(BiTree bt,elemtype x,BiTree parent) {BiTree p; if (parent==NULL)
您可能关注的文档
- 数据结构C语言版第2版李云清杨庆红揭安全第8章_图课件教学.ppt
- 数据结构Java语言版王学军第一章课件教学.ppt
- 数据结构Java语言版王学军第七章课件教学.ppt
- 数据结构Java语言版王学军第三章课件教学.ppt
- 数据结构Java语言版王学军第九章课件教学.ppt
- 数据结构Java语言版王学军第二章课件教学.ppt
- 数据结构Java语言版王学军第五章课件教学.ppt
- 数据结构Java语言版王学军第八章课件教学.ppt
- 数据结构Java语言版王学军第六章课件教学.ppt
- 数据结构Java语言版王学军第十章课件教学.ppt
- 江西省南昌市莲塘一中2026届高二化学第一学期期中监测模拟试题含解析.doc
- 福建省华安中学2026届九年级英语第一学期期末学业质量监测试题含解析.doc
- 山东省山东省滕州市第二中学2026届高三化学第一学期期末联考模拟试题含解析.doc
- 福建省石狮七中学2026届九年级英语第一学期期末调研模拟试题含解析.doc
- 安徽省合肥市合肥一中、合肥六中2026届高三上化学期中达标检测试题含解析.doc
- 四川省自贡市富顺第三中学2026届九上化学期中质量检测试题含解析.doc
- 2026届湖北省襄阳第四中学化学高三第一学期期中检测试题含解析.doc
- 图形平移与轴对称问题及例题汇编.pdf
- 吸烟管控措施探讨与观点分析.pdf
- 人教版八年级下册英语第十单元检测题.pdf
原创力文档


文档评论(0)