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

📄 m.cpp

📁 huffman树的建立文件
💻 CPP
字号:
#include "h.h"
#include <iostream.h>
#include <math.h>
#include <stdio.h>

void main(){
	node sfnode[51];
	code sfcode[26],cd;
	int i,j;

	for(i=0;i<51;i++){	//initial
		sfnode[i].key='\0';
		sfnode[i].lchild=-1;
		sfnode[i].rchild=-1;
		sfnode[i].parent=-1;
		sfnode[i].weight=0;
	}
	for(i=0;i<25;i++){
		cout<<"input a weight for"<<i<<endl;
		cin>>sfnode[i].weight;
		sfnode[i].key=char(i+97);
	}
	sorting(sfnode,26);


	for(j=0;j<26;j++){
		sfcode[j].start=19;
		for(int n=0;n<20;n++)
			sfcode[j].bit[n]=0;
	}
	built(sfnode,0,25,26);



	int n=26,c,p;
	for(i=0;i<n;i++)
	{
		cd.start=n-1;
		c=i;
		p=sfnode[c].parent;
		while(p!=-1)
		{ if(sfnode[p].lchild==c) cd.bit[cd.start]=0;
		else cd.bit[cd.start]=1;
		cd.start--; c=p;
		p=sfnode[c].parent;
		}
		for(j=cd.start+1;j<n;j++)
			sfcode[i].bit[j]=cd.bit[j];
		sfcode[i].start=cd.start;
	}
	for(i=0;i<n;i++)
	{
		printf("%d character is:",i);
		for(j=sfcode[i].start+1;j<n;j++)
			printf("%d",sfcode[i].bit[j]);
		printf("\n");
	}
	return;
}

⌨️ 快捷键说明

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