⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 本代码是基于VC++用C语言编写的哈弗曼编码 调试已通过 可使用 程序有待改善之处是译码程序没有
💻 C
字号:
//-------------哈弗曼编码--------
//作者:kenneth
//时间:11.26
//修改时间:12.1


#include "pubuse.h"
#include "HuffmanDef.h"
#include "HuffmanAlgo.h"

void main(void)
{ 
	FILE *fp=fopen("Plain_Coding.txt","w");
	FILE *fp1=fopen("Coding.txt","w");
	int i;
	int n;                 //字符种数
	char Telegram[NM];     //电文总数NM个;
	
    printf("***************************信息论编码上机试验***********************\n");
    printf("   ************************          --哈弗曼编码***************\n");
	printf("                            --通信10601\n");
	printf("请输入组成电文的英文种数:\n");
    scanf("%d",&n);
    printf("                        \n");

	printf("请输入由 %d 种英文字符组成的电文:\n",n);
 

	InitT(n);     //初始化


	scanf("%s",Telegram);
	if(Check_Character(Telegram))
	{
		printf("您输入的字符为非法字符!请重新输入由 %d 个英文字符组成的电文:\n",n);
		scanf("%s",Telegram);
	}
	//自动获得字符权值进行编码
	//GetNode_W_D(Telegram,n);

	//手动输入字符概率进行编码
    Get_P(Telegram,fp,n);

	printf("\n各字符及其权值(概率)如下:\n"); 
    for(i=0;i<n;i++)
	{		
		printf("%c\t",T[i].data);
		printf("%f\t",T[i].weight);
	}
		
    HuffmanCoding(T,n);
	GetNodeCode(T,n);
    printf("\n各结点的哈夫曼编码:\n"); 
    for(i=0;i<n;i++) 
        printf("第%d个字符 %c 的编码:%s\n ",i,T[i].data,T[i].code);

	Get_Telegram_Code(Telegram,fp1,n);
  
	 printf("哈弗曼编码完成! ! !\n");
	
	 getch();
	

}

⌨️ 快捷键说明

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