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

📄 haffmanbianma.h

📁 哈夫曼编码器
💻 H
字号:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct 
{
	char zf;
	int w;
}CharW;
int *ReadChar(String1 &str,CharW Arrage[])
{
	int n;
	int* flag;
	int p=0;
    flag=&p;
	n=str.length();
	bool f=false;
	for(int k=0;k<n;k++)
	{
		Arrage[k].zf=NULL;
		Arrage[k].w=0;
	}
	Arrage[0].zf=str.charAt(0);
	Arrage[0].w=1;
	p=1;
	for(int i=1;i<n;i++)
	{
		for(int j=0;j<p;j++)
			if(Arrage[j].zf==str.charAt(i))
			{
				f=true;
				break;
			}
			if(f==true)
			{
				Arrage[j].w++;
				f=false;
			}
			else
			{
				Arrage[p].zf=str.charAt(i);
				Arrage[p].w++;
				p++;
			}
	}
	
	return flag;
}
void paint(HaffNode haffTree[],int g,int i)
{
	int c=g;
	int a=haffTree[c].LeftChild;
	int b=haffTree[c].RightChild;
    if(a!=-1)
	{
		for(int j=0;j<=i;j++)
	        printf("---");
        printf("%d\n",haffTree[a].weight);
		c=a;
		paint(haffTree,c,i+1);
	}
	
	if(b!=-1)
	{
		for(int j=0;j<=i;j++)
			printf("---");
        printf("%d\n",haffTree[b].weight);
		c=b;
		paint(haffTree,c,i+1);
	}
	
}
void AoShow(HaffNode haffTree[],int n)
{
	int h=n;
	for(int g=0;g<2*h-1;g++)
	{
		if(haffTree[g].parent==0)
		{
			printf("-%d\n",haffTree[g].weight);
            break;
		}
		 
	}
	paint(haffTree,g,1);
}




















⌨️ 快捷键说明

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