程序设计竞赛网站集锦.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
树 树形结构(包括树和二叉树)是一种非常重要的结构。由于树形结构中的各子结构与整个结构具有相似的特性,因而其算法大多采用递归形式,这对许多初学者来说是一个难点。 主要内容 1、树的定义及基本术语 1、树的定义与运算 定义:树T是n个结点构成的有限集合(n0),其中有一个结点叫根,其余结点可划分为m个互不相交的子集T1,T2……Tm (m≥0),并且这m个子集本身又构成树,称为T的子树。 注意:本书没有给出空树的概念,即节点数至少为1。 树结构的表现形式及相关概念 2 、 二叉树 7.2.1 定义:二叉树T是n个结点的有限集合,其中n≥0,当n=0时,为空树,否则,其中有一个结点为根结点,其余结点划分为两个互不相交的子集TL、TR,并且TL、TR分别构成叫作左、右子树的二叉树。 二叉树另一种树型结构,它的特点是每个结点至多只有二棵子树(即二叉树中不存在度大于2的结点),并且,二叉树的子树有左右之分,其次序不能任意颠倒。 2.1 二叉树性质 性质1:在二叉树的第i层上的结点数≤2i-1(i0) (在二叉树的第i层上至多有2i-1 个结点) 3、满二叉树、完全二叉树 满二叉树的定义:一棵深度为K且有2k-1个结点的二叉树称为满二叉数 特点:是每一层上的结点数都是最大结点数 完全二叉树定义:深度为K的,有N个结点的二叉树,当且仅当其每一个结点都与深度为K的满二叉树中编号从1到N的结点一一对应时,称之为完全二叉树 3.1完全二叉树的特点 具有n个结点的完全二叉树的深度为[log2n]+1 在编号的完全二叉树中,各结点的编号之间的关系为:编号为i的结点如果存在左孩子,则其编号为2i,如果存在右孩子,则其编号为2i+1,如果存在父结点,则其编号为[i/2] 4、 二叉树存储 4.1顺序存储二叉数 按完全二叉树的编号次序进行,即编号为i的结点存储在数组中下标为i的元素中; 4.2 二叉链表 二叉链表结构描述: typedef char datatype; typedef struct { datatype data; struct Bnode *lchild, *rchild; } Bnode; 5、二叉树的遍历 遍历二叉树是指按某种次序访问二叉树中每个节点一次且仅一次。 例题:看下图 遍历算法例题(2) 已知二叉树的先序和中序序列如下,试构造出相应的二叉树。 先序:ABCDEFGHIJ 中序:CDBFEAIHGJ 原理:先序序列的第一个节点是根节点 中序序列根结点处于左右子树的中序序列之间 注意:二叉树的先序和后序序列不能唯一确定一棵二叉树,但由先序和中序或后序和中序序列能唯一确定一棵二叉树。 6、 哈夫曼树(最优二叉树) 设计一个将百分成绩转换为等级制的算法,具体要求如下: A:90~100 B:80~89 C:70~79 D:60~69 E:0~59 哈夫曼树 给定一组数值{w1,w2,……wn}作为叶子结点的权值,构造一棵二叉树。如果∑wiLi最小,则称此二叉树为最优二叉树,也称哈夫曼树。并称∑wiLi为带权路径长度。 哈夫曼算法: 根据给定的n个权值{w1,w2,…,wn},构成n棵二叉树的集合T={T1,T2,…,Tn},其中每个Ti只有一个带权为wi的根结点,其左右子树均空。 从T中选两棵根结点的权值最小的二叉树,不妨设为T1’、T2’作为左右子树构成一棵新的二叉树T1’,并且置新二叉树的根值为其左右子树的根结点的权值之和。 将新二叉树T1’并入到T中,同时从T中删除T1’、T2’。 重复(2)、(3),直到T中只有一棵树为止。 例题 以集合{3,4,5,6,8,10,12,18}为叶子结点的权值构造哈夫曼树,并计算其带权路径长度。 重讲堆排序 * * 2、二叉树的定义及性质 3、满二叉树和完全二叉树及性质 5、遍历二叉树 4、二叉树的存储结构 6、赫夫曼(huffman)树 图形表示法:见下图 A C D E F B G H 结点:包含一个数据元素及若干指向其子树的分支 结点的度:结点拥有的子树 根结点:例如A 叶子结点(终端结点):度为0的结点 分支结点(非终端结点、内部结点):度不为0的结点 孩子节点、父节点、兄弟节点、祖先节点、后代节点 层次:从根开始定义,根为第一层。。。 树的深度(高度):树中结点的最大层次 有序树、无序树:树中结点的各子树看成从左至右是有次序的(不能互换)为有序的.最左边的子树的根称为第一个孩子,最右边的称为最后一个孩子。 森林:互不相交的树的集合 A C D E F B G H I K

文档评论(0)

文档精品 + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:6203200221000001

1亿VIP精品文档

相关文档