测试.cpp

来自「哈夫曼编码课程设计」· C++ 代码 · 共 33 行

CPP
33
字号
#include <stdio.h>
#include <stdlib.h>
#define MaxValue 10000			/*设定的权值最大值*/
#define MaxBit 20				/*设定的最大编码位数*/
#define MaxN 50				/*设定的最大结点个数*/

#include "Haffman.h"			/*包含文件Haffman.h*/

void main(void)
{
	int i,j,n=15;
	int weight[]={1,3,5,7,9,11,13,15,17,19,21,23,25,27,29};

	HaffNode *myHaffTree=(HaffNode*)malloc(sizeof(HaffNode)*(2*n+1));
	Code *myHaffCode=(Code*)malloc(sizeof(Code)*n);

	if(n>MaxN)
	{
		printf("给出的n越界,修改MaxN!\n");
		exit(1);
	}
	Haffman(weight,n,myHaffTree);
	HaffmanCode(myHaffTree,n,myHaffCode);
	/*输出每个叶结点的哈夫曼编码*/
	for(i=0;i<n;i++)
	{
		printf("输入的叶结点的权值为:Weight=%d      输出叶结点对应的哈夫曼编码为:Code=", myHaffCode[i].weight);
		for(j=myHaffCode[i].start+1;j<n;j++)
			printf("%d",  myHaffCode[i].bit[j]);
			printf("\n");
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?