数据结构的课程设计

来源:百度知道 编辑:UC知道 时间:2024/07/02 11:45:13
我想做一个有关哈夫曼树的课程设计。
要求:1.对问题的描述与分析
2.逻辑设计、逻辑上的特点
3.存储结构设计:数据的结构、算法的实现
4.程序的调试与测试,遇到的问题和解决的过程。给出一组测试数据
对、错、及原因。
5.程序使用说明(输入、输出)
6.总结。(关键、难点)
7.附录。程序代码
谢谢哪位好心人帮帮我吧,明天就用了。把我所有的积分都给你了,帮帮我好吗。谢谢了,谢谢!就剩下这么点积分了,我没办法啊。请帮帮我吧。

Huffman 编码

一、实验目的
熟悉Huffman编码方法。
了解并弄懂Huffman编码实现信息的无损压缩原理。

二、实验要求
熟悉C语言编程。

三、实验内容
1.根据给定的n个权值(w1, w2, …, wn)构成n棵二叉树的集合F={T1, T2, …, Tn},其中每棵二叉树Ti中只有一个带树为Ti的根结点
2.在F中选取两棵根结点的权值最小的树作为左右子树构造一棵新的二叉树,且置其根结点的权值为其左右子树权值之和
3.在F中删除这两棵树,同时将新得到的二叉树加入F中
4.重复2, 3,直到F只含一棵树为止

四、实验步骤
1.用C语言实现二叉树的说明
2.输入n个权值,并生成n个二叉树
3.对n个二叉树逐步生成Huffman树
4.对Huffman树的每个叶子结点生成编码

附:实验程序
#include <stdio.h>
#define M 10
#define MAX 100

typedef struct
{
int data;
int pa,lc,rc;
}JD;

void huffman(int n,int w[],JD t[])
{ int i,j,k,x1,x2,m1,m2;
for(i=1;i<(2*n);i++)
{ t[i].pa=t[i].lc=t[i].rc=0;
if(i<=n)
t[i].data=w[i-1];
else
t[i].data=0;
}
for(i=1;i<n;i++)
{ m1=m2=MAX;
x1=x2=0;
for(j=1;j<(n+i);j++)
{ if((t[j].d