[理学]数据结构 第6章树和二叉树.ppt

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

6.6 哈夫曼树(Huffman)及其应用 1)最优树的定义 2)如何构造最优树 3)哈夫曼树的应用 typedef struct CTNode { //孩子结点结构 int child; struct CTNode *nextchild; } *ChildPtr; typedef struct { //双亲结点结构 TElemType data; //( int parent ;) ChildPtr firstchild; // 孩子链表头指针 } CTBox; typedef struct { //树结构 CTBox nodes[MAX_TREE_SIZE]; int n, r; // 结点数和根结点的位置 } CTree; A B C D E F G A B C E D F G 3、树的二叉链表 (孩子-兄弟)存储表示法 root A B C E D F G typedef struct CSNode{ ElemType data; struct CSNode *firstchild, *nextsibling; } CSNode, *CSTree; 结点结构: firstchild data nextsibling //---------树的二叉链表(孩子-兄弟)存储表示---------------- 6.4.2 森林和二叉树的相互转换 1.树与二叉树转换 A C B E D 树 A B C D E 二叉树 A ^ ^ B C ^ D ^ ^ E ^ A ^ ^ B C ^ D ^ ^ E ^ A ^ ^ B C ^ D ^ ^ E ^ 对应 存储 存储 解释 解释 A B C D E F G H I A B C D E F G H I A B C D E F G H I A B C D E F G H I 树转换成的二叉树其右子树一定为空 A B C D E F G H I 将树转换成二叉树:1)加线:在兄弟之间加一连线; 2)抹线:对每个结点,除了其第一个孩子外,去除其与其余孩子之间的关系;3)适当旋转使其形成一棵二叉树的形状 1) 2) 3) A B C D E F G H I A B C D E F G H I A B C D E F G H I A B C D E F G H I A B C D E F G H I 将二叉树转换成树 1)加线:若p结点是双亲结点的左孩子,则将p的右孩子,右孩子的右孩子,……沿分支找到的所有右孩子,都与p的双亲用线连起来 2)抹线:抹掉原二叉树中双亲与右孩子之间的连线 3)调整:将结点按层次排列,形成树结构 1) 2) 3) 2.森林与二叉树的转换 A B C D E F G H I J A B C D E F G H I J A B C D E F G H I J A B C D E F G H I J 1)将各棵树分别转换成二叉树 2)以第一棵树根结点为二叉树的根,将每棵树的根结点用线依次相连 3)旋转!形成一棵二叉树的形状 1) 2) 3) 森林转换成二叉树的转换规则为(形式化的描述):P138 若 F = Φ,则 B = Φ; 若F非空,则B的根为森林中第一棵树的根,B的左子树LB是由第一棵树的根结点的子树森林转换来的二叉树;RB是由森林{ T2, T3, …, Tm}转换来的二叉树. 由 (T2, T3,…, Tn ) 对应得到 RBT。 如果F={T1 , T2 , T3 , T4 ,….. , Tm }是森林,可按以下规则将其转换成一棵二叉树B=(root , LB , RB ) 二叉树转换为森林的规则为(形式化的描述):P138 由LB对应得到 第一棵树的子树森林{T11,T12,…,T1k} 1)若 B = Φ, 则 F = Φ; 2)若B非空 B的根为森林中第一棵树的根; 由RB对应得到 {T2, T3, …, Tn}。 如果B=(root , LB , RB )是一棵二叉树,可按以下规则将其转换成森林F={T1 , T2 , T3 , T4 ,…..

文档评论(0)

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

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

版权声明书
用户编号:5024214302000003

1亿VIP精品文档

相关文档