- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第六章 树和二叉树 2
分隔符 void PreOrder(BiTree T){ if(T){ printf(%s,T-data); PreOrder(T-lchild); PreOrder(T-rchild); } } 8种字符,概率分别为: 0.05,0.29,0.07,0.08,0.14,0.23,0.03,0.11 为简化运算,将权值设为: w={5,29,7,8,14,23,3,11}, n=8, 则m=2*n-1=15 哈夫曼树如图所示: * 一、双亲表示法(顺序存储) * 二、孩子表示法 第一种结点格式 第二种结点格式 第一种格式所有节点结构相同,操作方便,但是浪费空间 n个结点度为k的树,有n(k-1)+1个空链 第二种格式节点结构不同,节省空间,操作不方便方便 * 孩子链表: 特点: 顺序+链式存储结构; 找孩子容易,找双亲难 * 孩子双亲表示法 * 三、树的二叉链表存储表示法 定义结点 除放数据元素外,放两个指针,一个指向该结点的第一个孩子,另一个指向该结点的下一个兄弟(左孩子右兄弟) 转换方法 * 将树转换成二叉树 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 * 森林和二叉树的对应关系 由森林转换成二叉树 树的各种操作均可对应二叉树的操作来完成。 应当注意的是:和树对应的二叉树,其左、右子树的概念已改变为: 左是孩子,右是兄弟。 * 森林与二叉树的转换 森林的孩子兄弟链?二叉树的二叉链 B C D G I J E K A F H A B D C E H I K J F G * 树和森林的遍历 一、树的遍历 二、森林的遍历 * 树的遍历 先根遍历树的规则为: 若树非空,则: (1)访问树的根结点; (2)依次前序遍历树的第一棵子树、第二棵子树,…… 后根遍历树的规则为: 若树非空,则: (1)依次后序遍历树的第一棵子树、第二棵子树,…… (2)访问树的根结点; * 先根遍历时顶点的访问次序: A B E FG C D H I 后根遍历时顶点的访问次序: E F GB C H I D A 层次遍历时顶点的访问次序: A B C D E F G H I A B C D E F G H I * 1.森林中第一棵树的根结点; 2.森林中第一棵树的子树森林; 3.森林中其它树构成的森林。 森林由三部分构成: 森林的遍历 B C D G I J E K A F H 先序:ABCDEFGHIKJ 中序:BCEDAGFKIJH * 先序遍历时顶点的访问次序: A B E FG C D H I 后序遍历时顶点的访问次序: E F GB C H I D A 层次遍历时顶点的访问次序: A B C D E F G H I B C D G I J E K A F H * B C D G I J E K A F H A B D C E H I K J F G 先序:ABCDEFGHIKJ 中序:BCEDAGFKIJH 先序:ABCDEFGHIKJ 中序:BCEDAGFKIJH * 树的遍历和二叉树遍历的对应关系 ? 先根遍历 后根遍历 树 二叉树 森林 先序遍历 先序遍历 中序遍历 中序遍历 * 若要编写按层次顺序(同一层自左至右)遍历树的算法,则应如何? 分析: 因两者层次遍历的定义相同,则算法相同 差别仅在于: 二叉树至多只有左、右两棵子树,而树的子树个数不定,因此,当以孩子-兄弟链表表示树时,需要顺第一个孩子结点的右指针一直往右找到所有孩子结点。 * void BFSTraverse(CSTree T) { InitQueue(Q); // 置空的辅助队列Q if (T) EnQueue(Q, T); // 根结点入队列 while (!QueueEmpty(Q)) { DeQueue(Q, p); // 队头元素出队并置为p Visit(p-data); for (q=p-firstchild; !q; q=q-nextsibling;) EnQueue(Q, q); // 子树根入队列 } // while } A B C D E F G H I A B C D E F G H I * 二叉树的典型应用 平衡树—— 排序树—— 字典树—— 判定树—— 带权树—— 最优树—— 由字符串构成的二叉排序树 特点:分支查找树 特点:路径带权值 是带权路径长度最短的树,又称 Huffman树,用途之一是通信中的压缩编码。 特点:所有结
您可能关注的文档
最近下载
- U8V11.1培训课件9U8V11.1新版功能介绍生产制造幻灯片.ppt VIP
- GB_T 9711-2023 石油天然气工业 管线输送系统用钢管.pdf VIP
- 1kv母线调试报告.pdf VIP
- 过滤实验-课件.ppt VIP
- GB_T 14264-2024 半导体材料术语.pdf VIP
- 消防系统的联动常见故障.ppt VIP
- (完整版)供应商合规管理制度 .pdf VIP
- JBT 12786-2016 升降工作平台 术语与分类.pdf VIP
- 2024东南亚电商市场报告.pptx VIP
- 第七单元 跨学科主题学习——项目开展,探究丝绸之路 学习任务单 苏科版初中信息科技七年级下册.docx VIP
文档评论(0)