哈工大数据结构6绪论.ppt

  1. 1、本文档共193页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
特点: 浪费空间,适于存满二叉树和完全二叉树。 无须按完全二叉树的结点层次编号,依次按编号存放二叉树中的数据元素即可。 结点数据,左子编号,右子编号均要存储。故可采用长度为 n 的结构 数组存放。n为结点个数。 结构数组相当于一个二维构造, 第一维是结构数组元素, 每个元素是一 个结构变量, 第二维是结构成员。? 顺序存储结构小结: 满二叉树或完全二叉树可采用一维数组; 结点少,层数高可采用二维数组; 查找方便,找孩子结点及父结点均方便; 缺点:空间扩充不便;插入和删除须大量移动数据。 二叉链表: (6) 按中序线索化二叉树算法实现 实现: 用二叉链表作为树的存储结构,链表中每个结点的两个指针域分别指向 其第一个孩子结点和下一个兄弟结点。 特点: 便于实现各种操作。 破坏了树的层次。 (3)森林转换成二叉树 1) 根据给定的n个权值{w1,w2,……wn},构造n棵只有根结点的二叉树,令 其权值为wj 。 2) 在森林中选取两棵根结点权值最小的树做为左右子树,构造一棵新的二 叉树,置新二叉树根结点权值为其左右子树根结点权值之和。 3) 在森林中删除这两棵树,同时将新得到的二叉树加入森林中。 4)重复上述两步,直到只含一棵树为止,这棵树即为哈夫曼树。 小结: 哈夫曼(Haffman)树: 一种带权路径长度最小的二叉树,也称最优二叉树。 路径:从树中一个结点到另一个结点之间的分支,构成这两个结点间的路径。 - + / a * b - e f c d (1) 与 Haffman树有关的术语 1. Haffman树的引入 路径长度:路径上的分支个数。 - + / a * b - e f c d 路径长度为 3 树的路径长度:从树根到每一个结点的路径长度之和。 - + / a * b - e f c d 2*(2-1)+4*(3-1)+2*(4-1)+2*(5-1)==24 该层结点数*(该层层数-1) 结点的带权路径长度: 从该结点到树根之间路径长度与该结点的权的乘积。 Wk* Lk 其中: Wk 为权值。 Lk 为结点到根的路径长度。 - + / a * b - e f c d 树的带权路径长度:树中所有叶子结点的带权路径长度之和。 记作: 其中: Wk:为第 k 个叶子结点的权值; Lk:为第 k 个叶子结点到根结点的路径长度。 - + / a * b - e f c d (2)Haffman树的定义 Huffman 树: 设有 n 个权值{ w1, w2,…… wn },构造一棵有 n 个叶子结点的二叉树, 每个叶子的权值为 wi ,则 wpl 最小的二叉树叫做 Huffman 树 。 例 有4 个结点,权值分别为7,5,2,4,构造有 4 个 叶子结点的二叉树 a b c d 7 5 2 4 WPL=7*2+5*2+2*2+4*2=36 d c a b 2 4 7 5 WPL=7*3+5*3+2*1+4*2=46 a b c d 7 5 2 4 WPL=7*1+5*2+2*3+4*3=35 (3)哈夫曼树的意义 if(n60) b=‘E’; else if(n70) b=‘D’; else if(n80) b=‘C’; else if(n90) b=‘B’; else b=‘A’; N60? E Y N N70? D Y N N80? C Y N N90? B Y N A if(n80) if(n70) if(n60) b=‘E’; else b=‘D’; else b=‘C’; else b=‘B’; else if(n90) b=‘A’; A B C D E 等级b 10% 30% 40% 15% 5% 比例数 90 ~100 80 ~89 70 ~79 60 ~69 0~59 分数n 第一种判断次数: 10000(0.05*1+0.15*2+0.4*3+0.3*4+0.1*4)=31500 第二种判断次数: 10000(0.05*3+0.15*3+0.4*2+0.3*2+0.

文档评论(0)

希望之星 + 关注
实名认证
内容提供者

我是一名原创力文库的爱好者!从事自由职业!

1亿VIP精品文档

相关文档