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

📄 h.h

📁 huffman树的建立文件
💻 H
字号:
#include <iostream.h>

struct node{
	int weight;
	int lchild;
	int rchild;
	int parent;
	char key;
};

struct code{
	int start;
	int bit[40];
};


void built(node tree[],int a,int b,int n)
{
	if((a-b)>0)
	{
		cout<<"error"<<endl;

	}
	else if(a==b)
	{
		tree[a].parent=n-1;
		tree[a].lchild=-1;
		tree[a].rchild=-1;
		tree[n-1].lchild=a;
	}
	else if((b-a)==1)
	{
		tree[a].parent=n;
		tree[b].parent=n;
		tree[a].lchild=-1;
		tree[b].lchild=-1;
		tree[a].rchild=-1;
		tree[b].rchild=-1;
		tree[n].lchild=a;
		tree[n].rchild=b;
	}
	else if((b-a)>1)
	{
		int bline=0; 
		int temp=1000, delta=1000,i=a,l=0,r=0,j;
		while(delta<=temp)
		{
			temp=delta;
			for(j=a;j<=i;j++)
				l+=tree[j].weight;
			for(j=i+1;j<=b;j++)
				r+=tree[j].weight;
			delta=l-r?l-r:r-l;
			i++;
		}
		bline=i-1;


		tree[n].lchild=n+1;
		tree[n].rchild=n+2;
		tree[n+1].parent=n;
		tree[n+2].parent=n;

		built(tree,a,bline-1,n+1);
		built(tree,bline,b,n+2);
		
		

	}
	else;
}



void sorting(node tree[],int n){
	int i,j;
	node temp;
	for(i=1;i<=n-1;i++){
		for(j=0;j<i-1;j++){
			if (tree[j].weight<tree[j+1].weight)
			{
				temp.weight=tree[j+1].weight;
				temp.key=tree[j+1].key;
				tree[j+1].weight=tree[j].weight;
				tree[j+1].key=tree[j].key;
				tree[j].weight=temp.weight;
				tree[j].key=temp.key;
			}
		}
	}
}

⌨️ 快捷键说明

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