亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? huffman.cpp

?? 構造哈夫曼樹,錄入權值,并求出最小生成樹
?? CPP
字號:
#include   <stdio.h>   
#include   <string.h>   
#include   <stdlib.h>   
#include   <malloc.h>   
#include   <conio.h>   

typedef   struct   {   
	unsigned   int   weight;   
	unsigned   int   parent,lchild,rchild;   
}   HTNode,*HuffmanTree;   

typedef   char   **HuffmanCode;   

typedef   struct   {   
	unsigned   int   s1;   
	unsigned   int   s2;   
}   MinCode;   

void   Error(char   *message);   
HuffmanCode   HuffmanCoding(HuffmanTree   HT,HuffmanCode   HC,unsigned   int   *w,unsigned   int   n);   
MinCode   Select(HuffmanTree   HT,unsigned   int   n);   

void   Error(char   *message)   
{   
	fprintf(stderr,"Error:%s\n",message);   
	exit(1);   
}   

HuffmanCode   HuffmanCoding(HuffmanTree   HT,HuffmanCode   HC,unsigned   int   *w,unsigned   int   n)   
{   //w存放n個字符的權值(均>0),構造赫夫曼樹HT,并求出n個字符的赫夫曼編碼HC。
	unsigned   int   i,s1=0,s2=0;   
	HuffmanTree   p;   
	char   *cd;   
	unsigned   int   f,c,start,m;   
	MinCode   min;   
	if(n<=1)   
		Error("Code   too   small!");   
	m=2*n-1;   
	HT=(HuffmanTree)malloc((m+1)*sizeof(HTNode)); //0號單元未用。  
	for(p=HT,i=0;i<=n;i++,p++,w++)   
	{   
		p->weight=*w;   
		p->parent=0;   
		p->lchild=0;   
		p->rchild=0;   
	}   
	for(;i<=m;i++,p++)   
	{   
		p->weight=0;   
		p->parent=0;   
		p->lchild=0;   
		p->rchild=0;   
	}   
	for(i=n+1;i<=m;i++)   
	{   //建赫夫曼樹
		//在HT[1..i-1]選擇parent為0且weight最小的兩個結點,其序號分別為s1和s2。
		min=Select(HT,i-1);   
		s1=min.s1;   
		s2=min.s2;   
		HT[s1].parent=i;   
		HT[s2].parent=i;   
		HT[i].lchild=s1;   
		HT[i].rchild=s2;   
		HT[i].weight=HT[s1].weight+HT[s2].weight;   
	}   
	printf("HT   List:\n");   
	printf("Number\t\tweight\t\tparent\t\tlchild\t\trchild\n");   
	for(i=1;i<=m;i++)   
		printf("%d\t\t%d\t\t%d\t\t%d\t\t%d\n",   
		i,HT[i].weight,HT[i].parent,HT[i].lchild,HT[i].rchild);
	//從葉子到根逆向求每個字符的赫夫曼編碼。 
	HC=(HuffmanCode)malloc((n+1)*sizeof(char   *)); //分配n個字符編碼的頭指針向量。  
	cd=(char   *)malloc(n*sizeof(char   *));   //分配求編碼的工作空間。
	cd[n-1]='\0';   //編碼結束符。
	for(i=1;i<=n;i++)   //逐個字符求赫夫曼編碼。
	{   
		start=n-1;   //編碼結束符位置。
		for(c=i,f=HT[i].parent;f!=0;c=f,f=HT[f].parent) //從葉子到根逆向求每個字符的赫夫曼編碼。  
			if(HT[f].lchild==c)   
				cd[--start]='0';   
			else   
				cd[--start]='1';   
			HC[i]=(char   *)malloc((n-start)*sizeof(char   *)); //為第i個字符編碼分配空間。  
			strcpy(HC[i],&cd[start]);   //從cd復制編碼(串)到HC。
	}   
	free(cd);   
	return   HC;   
}   

MinCode   Select(HuffmanTree   HT,unsigned   int   n)   
{   
	unsigned   int   min,secmin;   
	unsigned   int   temp;   
	unsigned   int   i,s1,s2,tempi;   
	MinCode   code;   
	s1=1;
	s2=1;   
	for(i=1;i<=n;i++)   
		if(HT[i].parent==0)   
		{   
			min=HT[i].weight;   
			s1=i;   
			break;   
		}   
		tempi=i++;   
		for(;i<=n;i++)   
			if(HT[i].weight<min&&HT[i].parent==0)   
			{   
				min=HT[i].weight;   
				s1=i;   
			}   
			for(i=tempi;i<=n;i++)   
				if(HT[i].parent==0&&i!=s1)   
				{   
					secmin=HT[i].weight;   
					s2=i;   
					break;   
				}   
				for(i=1;i<=n;i++) 
				{
					if(HT[i].weight<secmin&&i!=s1&&HT[i].parent==0)   
					{   
						secmin=HT[i].weight;   
						s2=i;   
					}  
				}
				if(s1>s2)   
				{   
					temp=s1;   
					s1=s2;   
					s2=temp;   
				}   
				code.s1=s1;   
				code.s2=s2;   
				return   code;   
}   

void main()   
{   
	HuffmanTree   HT=NULL;   
	HuffmanCode   HC=NULL;   
	unsigned   int   *w=NULL;   
	unsigned   int   i,n;   
	printf("Input   n:\n");   
	scanf("%d",&n);   
	w=(unsigned   int   *)malloc((n+1)*sizeof(unsigned   int   *)); //給權值分配空間。   
	w[0]=0; //給第一個空間賦0值。  
	printf("Enter   weight:\n");   
	for(i=1;i<=n;i++)   //錄入權值。
	{   
		printf("w[%d]=",i);   
		scanf("%d",&w[i]);   
	}   
	HC=HuffmanCoding(HT,HC,w,n);   
	printf("HuffmanCode:\n");   
	printf("Number\t\tWeight\t\tCode\n");   
	for(i=1;i<=n;i++)   
		printf("%d\t\t%d\t\t%s\n",i,w[i],HC[i]);   
    
}   

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品高潮久久久久无| 欧美在线你懂的| 偷拍一区二区三区| 国产在线精品一区二区| 91麻豆福利精品推荐| 精品久久一区二区三区| 亚洲日本护士毛茸茸| 国产伦精品一区二区三区视频青涩 | 欧美一区二区高清| 精品入口麻豆88视频| 一区二区三区日韩欧美| 色天天综合色天天久久| 欧美少妇bbb| 国产欧美va欧美不卡在线| 婷婷六月综合亚洲| 在线观看91精品国产麻豆| 国产精品色噜噜| 久久超碰97人人做人人爱| 在线观看亚洲a| 国产精品久久久久久久浪潮网站 | 精品视频免费看| 国产精品久久久久久久第一福利 | 欧美肥妇bbw| 亚洲欧美区自拍先锋| 国产成人精品综合在线观看 | 一级做a爱片久久| 成人激情综合网站| 久久综合色综合88| 免费高清在线一区| 欧美精品久久一区| 亚洲v精品v日韩v欧美v专区| 日本高清不卡在线观看| 亚洲欧美偷拍另类a∨色屁股| 粉嫩绯色av一区二区在线观看| 久久综合色天天久久综合图片| 青青草国产成人99久久| 在线观看91精品国产麻豆| 亚洲国产日韩精品| 在线看日韩精品电影| 亚洲黄色小视频| 91小视频在线免费看| 亚洲欧美日韩国产综合在线| 色综合天天视频在线观看 | 欧美精品三级日韩久久| 亚洲大片一区二区三区| 欧美日韩大陆在线| 日韩av一区二| 日韩欧美国产小视频| 麻豆国产精品官网| 久久久久久久综合色一本| 国产99精品国产| 日韩一区中文字幕| 欧洲日韩一区二区三区| 午夜精品久久久久久久99水蜜桃| 欧美日韩综合在线| 老鸭窝一区二区久久精品| 欧美mv日韩mv亚洲| 国产成人免费高清| 亚洲激情在线播放| 欧美一区二区高清| 国产91高潮流白浆在线麻豆| 日韩理论在线观看| 欧美三日本三级三级在线播放| 日韩精品成人一区二区三区| 久久综合久久鬼色中文字| 99久久国产综合精品女不卡| 亚洲一区二区三区小说| 精品99久久久久久| 菠萝蜜视频在线观看一区| 夜夜精品视频一区二区| 日韩免费视频一区二区| av一区二区三区黑人| 午夜在线成人av| 久久精品欧美日韩| 欧美三级视频在线| 国产制服丝袜一区| 亚洲摸摸操操av| 日韩一区二区电影| 99久久久免费精品国产一区二区| 日韩高清欧美激情| 中文字幕日韩精品一区| 日韩女优电影在线观看| www.欧美.com| 麻豆国产一区二区| 一区二区三区四区av| 久久午夜老司机| 欧美最新大片在线看| 国产一区二区不卡| 日韩精品高清不卡| 亚洲女女做受ⅹxx高潮| www久久精品| 欧美日韩免费电影| 99在线精品免费| 久久99久久99小草精品免视看| 一区二区三区四区乱视频| 国产欧美日韩中文久久| 欧美精品vⅰdeose4hd| kk眼镜猥琐国模调教系列一区二区| 欧美aa在线视频| 亚洲精品欧美综合四区| 欧美国产一区二区| 精品国产乱码91久久久久久网站| 欧美少妇一区二区| 91豆麻精品91久久久久久| 国产福利不卡视频| 精品一区二区三区免费毛片爱 | 日韩一卡二卡三卡国产欧美| 在线免费观看日韩欧美| 91色porny在线视频| 成人精品鲁一区一区二区| 极品少妇xxxx精品少妇| 日韩高清在线不卡| 午夜精品福利一区二区三区蜜桃| 亚洲激情校园春色| 亚洲精品国产精华液| 日韩美女视频19| 1024精品合集| 国产精品成人免费精品自在线观看| 久久久午夜精品| 国产日韩影视精品| 久久免费偷拍视频| 久久综合久久久久88| 久久久www免费人成精品| 精品久久五月天| 久久亚洲精品国产精品紫薇| 久久久久久久综合| 久久精品亚洲乱码伦伦中文| 国产午夜精品一区二区| 国产精品无码永久免费888| 国产午夜久久久久| 国产精品私人自拍| 中文字幕一区二区日韩精品绯色| 国产精品毛片久久久久久| 中文字幕视频一区| 亚洲一区二区综合| 日韩国产欧美在线播放| 日本在线不卡视频| 激情综合五月婷婷| 成人永久免费视频| 91精品办公室少妇高潮对白| 欧美日韩三级一区| 欧美大肚乱孕交hd孕妇| 久久影视一区二区| 中文字幕亚洲电影| 午夜伊人狠狠久久| 韩国av一区二区三区在线观看| 国产91精品精华液一区二区三区 | 欧美成人激情免费网| 久久久蜜臀国产一区二区| 国产精品久久久久久一区二区三区| 亚洲精选免费视频| 日韩高清在线观看| 成人免费的视频| 欧美性生活一区| 精品免费视频.| 国产欧美精品一区二区色综合| 欧美mv日韩mv国产| 精品少妇一区二区三区免费观看 | 国产午夜久久久久| 一区二区视频免费在线观看| 日精品一区二区三区| 国产成a人亚洲| 欧洲色大大久久| 久久久久久久av麻豆果冻| 亚洲你懂的在线视频| 激情综合网av| 色国产精品一区在线观看| 欧美一区二区三区免费在线看| 中文字幕精品一区二区精品绿巨人| 亚洲综合区在线| 国产99精品国产| 日韩一级二级三级精品视频| 成人欧美一区二区三区视频网页| 日本欧美大码aⅴ在线播放| 波多野结衣的一区二区三区| 欧美一区二区女人| 夜夜操天天操亚洲| 成人免费观看视频| 精品国产乱码久久久久久老虎| 亚洲电影一区二区| heyzo一本久久综合| 亚洲精选视频免费看| 国产精品久久久久久久久快鸭| 亚洲一区中文日韩| 国产成人亚洲综合a∨婷婷图片| 精品视频一区二区三区免费| 中文字幕制服丝袜一区二区三区| www.性欧美| 精品国产乱码久久久久久牛牛| 同产精品九九九| 在线区一区二视频| 国产精品不卡一区| 成人激情综合网站| 国产日产亚洲精品系列| 狠狠色伊人亚洲综合成人| 91精品国产91久久久久久最新毛片| 亚洲一区二区在线免费看| 一本色道**综合亚洲精品蜜桃冫| 国产精品乱子久久久久| 国产麻豆精品一区二区|