数据结构上机实验_树和二叉树的应用_哈夫曼编码设计(含代码和报告).doc
《数据结构上机实验_树和二叉树的应用_哈夫曼编码设计(含代码和报告).doc》由会员分享,可在线阅读,更多相关《数据结构上机实验_树和二叉树的应用_哈夫曼编码设计(含代码和报告).doc(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数据结构实验报告题目:数据结构实验报告学院:工商管理学院班级:信息1001姓名:彭振宇学号:时间:2012/6/26实验三:树和二叉树的应用一 实验题目:树和二叉树的应用二 实验内容:哈夫曼编码设计三实验目的:掌握树和二叉树的概念及工作原理,运用其原理及概念完成上述实验题中的内容。四实验要求:为了使学生更好的掌握与理解课堂上老师所讲的概念与原理,实验前每个学生要认真预习所做的实验内容及编写源程序伪码(写在纸上及盘中均可)以便在实验课中完成老师所布置的实验内容。五概要设计原理:1.选择parent为0且weight最小的两个结点。其序号分别为s1和s22.建立赫夫曼树叶3.从叶子到根逆向求每个字
2、符的赫夫曼编码4.输出构造的树5.输出得到的各权Huffman编码六详细程序清单及注释说明:#include#include#include#define MAXSIZE 30 /最大叶子数#define MAXCODE 10000 /编码最大长度#define OK 1#define ERROR 0#define OVERLOW -2/=赫夫曼树和赫夫曼编码的存储表示=typedef struct unsigned int weight; unsigned int parent, lchild, rchild;HTNode,*HuffmanTree; /动态分配数组存储赫夫曼树typedef
3、 char *HuffmanCode; /动态分配数组存储赫夫曼编码表 /*-算法描述-*/void Select(HuffmanTree HT, int n, int *s1, int *s2)/选择parent为0且weight最小的两个结点。其序号分别为s1和s2 int minsum = ; int i,j; for(i=1; i=n; i+) if(HTi.parent) continue; for(j=i+1; j=n; j+) if(HTj.parent) continue; if(HTi.weight + HTj.weight minsum) minsum = HTi.weig
4、ht + HTj.weight; *s1 = i; *s2 = j; void CreateHuffmanTree(HuffmanTree &HT, int *w, int n)/建立赫夫曼树叶 int m, s1, s2, i; if(n = 1) return; m = 2*n-1; HT = (HuffmanTree)malloc(m+1) * sizeof(HTNode); for( i = 1; i = n; i+, +w) HTi.weight = *w; HTi.parent = 0; HTi.lchild = 0; HTi.rchild = 0; for( ;i = m; +i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构上机实验_树和二叉树的应用_哈夫曼编码设计 含代码和报告 数据结构 上机 实验 二叉 应用 哈夫曼 编码 设计 代码 报告
限制150内