- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第六章 树 6.1 二叉树的定义与性质 6.2 二叉树的基本操作与存储实现 6.3 二叉树的遍历 6.4 线索二叉树 6.5 二叉树的应用 6.6 树的定义与相关术语 6.7 树的基本操作与存储 6.8 树、森林与二叉树的转换 6.9 树和森林的遍历 6.1 二叉树的定义与性质 6.1.1二叉树的基本概念 定义:二叉树是n(n?0)个结点的有限集,它或为空树(n=0),或由一个根结点和两棵分别称为左子树和右子树的互不相交的二叉树构成 特点 每个结点至多有二棵子树 二叉树的子树有左、右之分,且其次序不能任意颠倒 五种基本形态 基本术语 结点(node)——表示树中的元素,包括数据项及若干指向其子树的分支 结点的度(degree)——结点拥有的子树数 叶子(leaf)——度为0的结点 分支结点——度0的结点 左孩子、右孩子(child)——结点子树的根称为该结点的孩子 双亲(parents)——孩子结点的上层结点 兄弟(sibling)——同一双亲的孩子 祖先、子孙——如果有一条路径从结点M到结点N,那么M就称为N的祖先,N成为M的子孙 树的度——一棵树中最大的结点度数 结点的层次(level)——从根结点算起,根为第一层,它的孩子为第二层…… 深度(depth)——树中结点的最大层次 6.1.2 二叉树性质 性质1: 6.1.3几种特殊形式的二叉树 满二叉树 定义: 证明:根据完全二叉树的定义和性质2可知,当一棵完全二叉树的深度为k、结点个数为n时,有 性质5:如果对一棵有n个结点的完全二叉树的结点按层序编号,则对任一结点i(1?i?n),有: (1) 如果i=1,则结点i是二叉树的根,无双亲;如果i1,则其双亲是?i/2? (2) 如果2in,则结点i无左孩子;如果2i?n,则其左孩子是2i (3) 如果2i+1n,则结点i无右孩子;如果2i+1?n,则其右孩子是2i+1 6.2二叉树的基本操作与存储实现 完全二叉树的存储实现:按满二叉树的结点层次编号,依次存放二叉树中的数据元素 特点:结点间关系蕴含在其存储位置中 2.链式存储结构 二叉链表 6.2.2 二叉树的基本操作及实现 建立一棵带头结点的空二叉树 Initiate(bt) 创建二叉树 Create(x,lbt,rbt) 插入左孩子 InsertL(bt,x,parent) 插入右孩子 InsertR(bt,x,parent) 删除只有一个结点的左子树 DeleteL(bt,parent) 删除右子树 DeleteR(bt,parent) 查找 Search(bt,x) 遍历 Traverse(bt) 6.3二叉树的遍历 6.3.1 二叉树的遍历方法及递归实现 6.3.2二叉树的遍历的非递归实现 6.3.1 二叉树的遍历方法及递归实现 算法 递归算法 6.3.2二叉树遍历的非递归算法 (1)先序遍历的非递归实现 (3)后序遍历的非递归实现 typedef struct BiThrNode { datatype data; unsigned ltag, rtag; struct BiThrNode *lchild, *rchild; }BiThrNodeType,*BiThrTree; 6.4.2 线索二叉树的基本操作实现 1.建立一棵中序线索化二叉树 4.在中序线索二叉树上查找值为x的结点(带头结点) 6.5二叉树的应用 2.哈夫曼树的基本概念 路径:从树中一个结点到另一个结点之间的分支构成这两个结点间的~ 路径长度:路径上的分支数 二叉树的路径长度:从树根到所有叶子结点的路径长度之和 3.构造Huffman树的方法——Huffman算法 构造Huffman树步骤 根据给定的n个权值{w1,w2,……wn},构造n棵只有根结点的二叉树,令权值为wj 在森林中选取两棵根结点权值最小的树作左右子树,构造一棵新的二叉树,置新二叉树根结点权值为其左右子树根结点权值之和 在森林中删除这两棵树,同时将新得到的二叉树加入森林中 重复上述两步,直到只含一棵树为止,这棵树即哈夫曼树 1.数据结构 3)在哈夫曼树上求叶子结点的编码; for(i=0;in;i++) {HuffCode[i].start=n-1; c=i;p=c的双亲; while(双亲p 存在) {if(c是p的左孩子) 代码为0; else 代码为1; HuffCode[i].start--;
您可能关注的文档
最近下载
- 传热学(全套714页课件课件).pptx VIP
- 统编版(2024)一年级下册语文4 小公鸡和小鸭子课件.pptx VIP
- 课-铜版纸彩印市场哲学数学原理完全配图手册缠中说禅.pdf VIP
- CQCIO_001—2019软件及信息化工程造价规范(V5.0) 2019 28页.pdf VIP
- 互联网技术全国通信专业技术人员职业水平考试大纲PPT.docx VIP
- (完整版)小学一年级语文教学经验交流.pptx VIP
- (完整版)小学一年级语文教学经验交流.pptx VIP
- 插画人物头像课件.pptx
- 20210820-申万宏源-申万行业分类标准2021版说明.pdf VIP
- 2025年最新全国通信专业技术人员职业水平考试试题和答案.docx VIP
文档评论(0)