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

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

?? haffman.txt

?? 用二叉樹實現哈佛曼編碼
?? TXT
字號:

     
#include <stdio.h>
#include <string.h>
#include <malloc.h>
#define null 0
#define MAXN 100
#define MAXM 300

struct tagTree{//用二叉排序樹保存出現的各個字符
	char optr;    //需要編碼的某個字符
	int n_appear; //當前字符出現的次數
	struct tagTree*lchild;
	struct tagTree*rchild;
}*btree;//btree作為二叉排序樹的根

struct tagHeap{//堆結構
	char optr;    //當前字符,葉子時有效
	int n_appear; //當前子樹出現的次數
	struct tagHeap*lchild;
	struct tagHeap*rchild;
}*heap[MAXM];//開始時最多可以有MAXN棵子樹

int n_heap,n_code;
char code[MAXN];//打印haffman編碼時候用到

void insert_to_heap(struct tagHeap *pt)//插入一個元素到堆,從下到上調整
{
	heap[++n_heap] = pt; //插入節點到最后
	int parent,child=n_heap;
	while(child > 1)
	{
		parent = child >> 1;//獲得child的parent節點的index
		if(heap[parent]->n_appear <= heap[child]->n_appear)break;
		pt = heap[parent];          //child節點和parent節點交換步驟1
		heap[parent] = heap[child]; //child節點和parent節點交換步驟2
		heap[child] = pt;           //child節點和parent節點交換步驟3
		child = child >> 1;
	}
}//inseart_to_heap

void delete_from_heap(struct tagHeap *&pt)//從堆中取出根節點,從上到下調整
{
	if(!n_heap)//堆為空則有pt返回NULL
	{
		pt = null; return;
	}
	pt = heap[1];
	int child,parent=1;
	while(1)
	{
		child = parent << 1;//獲取左孩子的index
		if(child < n_heap)
		{
			if(heap[child]->n_appear <= heap[child+1]->n_appear)
			{
				heap[parent] = heap[child];
				parent = child;
			}
			else
			{
				heap[parent] = heap[child+1];
				parent = child + 1;
			}
		}
		else if(child == n_heap)
		{
			heap[parent] = heap[child];
			--n_heap;
			break;
		}
		else
		{
			heap[parent] = heap[n_heap];
			--n_heap;
			break;
		}
	}
}//delete_from_heap

void insert_to_btree(struct tagTree*&btree,char optr)//新出現的字符插入到二叉樹,已有的則計數器加一
{
	if(btree == null)
	{
		btree = (struct tagTree*)malloc(sizeof(struct tagTree));
		btree->optr = optr;
		btree->n_appear = 1;
		btree->lchild = null;
		btree->rchild = null;
	}
	else if(btree->optr == optr)
	{
		btree->n_appear++;
	}
	else if(btree->optr < optr)
	{
		insert_to_btree(btree->rchild,optr);
	}
	else
	{
		insert_to_btree(btree->rchild,optr);
	}
}//insert_to_btree

void init_data(void)
{
	btree = null;
	n_heap = 0;
	char optr;
	while(scanf("%c",&optr)!=EOF)
	{
		insert_to_btree(btree,optr);
	}
}//init_data

void init_heap(struct tagTree*btree)
{
	if(btree != null)
	{
		struct tagHeap *pt;
		pt = (struct tagHeap *)malloc(sizeof(struct tagHeap));
		pt->lchild = null;
		pt->rchild = null;
		pt->n_appear = btree->n_appear;
		pt->optr = btree->optr;
		insert_to_heap(pt);
		if(btree->lchild != null)
		{
			init_heap(btree->lchild);
		}
		if(btree->rchild != null)
		{
			init_heap(btree->rchild);
		}
	}
}//init_heap

void haffman(void)
{
	init_heap(btree);
	while(n_heap >= 2)//不斷的將出現次數最少的兩棵子樹合并
	{
		struct tagHeap *pt1,*pt2,*pt;
		delete_from_heap(pt1);
		delete_from_heap(pt2);
		pt = (struct tagHeap *)malloc(sizeof(struct tagHeap));
		pt->lchild = pt1;
		pt->rchild = pt2;
		pt->optr = '\0';
		pt->n_appear = pt1->n_appear + pt2->n_appear;
		insert_to_heap(pt);
	}
}//haffman

void print_haffman_code(struct tagHeap *pt,int len)//打印haffman編碼
{
	if(pt != null)
	{
		if(pt->lchild == null)
		{
			code[len] = '\0';
			printf("optr=%c,value=%d,n_appear=%d,haffman code=%s\n",pt->optr,(int)pt->optr,pt->n_appear,code);
		}
		else
		{
			code[len] = '0';
			print_haffman_code(pt->lchild,len+1);
		}
		if(pt->rchild != null)
		{
			code[len] = '1';
			print_haffman_code(pt->rchild,len+1);
		}
	}
}//print_haffman_code

void print_haffman(void)
{
	if(n_heap >= 1)
	{
		print_haffman_code(heap[1],0);
	}
	else
	{
		printf("輸入為空,編碼失敗!\n");
	}
}//print_haffman

int main(void)
{
	freopen("D:\\in.txt","r",stdin); //文件輸入,若要改為手動輸入,請注釋次行
	init_data();
	haffman();
	print_haffman();
	return 0;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
经典三级视频一区| 日韩在线一区二区| av不卡免费电影| 亚洲免费色视频| 在线观看网站黄不卡| 亚洲香肠在线观看| 91精品国产高清一区二区三区蜜臀| 视频在线观看一区二区三区| 精品福利视频一区二区三区| 丰满岳乱妇一区二区三区| 综合久久给合久久狠狠狠97色 | 26uuu国产日韩综合| 国产精品一区二区果冻传媒| 国产精品视频你懂的| 在线观看日韩精品| 精久久久久久久久久久| 国产精品污网站| 欧美三级视频在线播放| 九色综合国产一区二区三区| 亚洲色图.com| 欧美成人激情免费网| 成人av电影免费在线播放| 亚洲影视在线观看| 精品久久久久久久久久久院品网 | 欧美日韩国产综合一区二区 | 国产综合色视频| 亚洲色图色小说| 欧美刺激脚交jootjob| 不卡的av中国片| 免费人成在线不卡| 成人免费一区二区三区在线观看| 欧美肥大bbwbbw高潮| 波多野结衣中文字幕一区二区三区| 亚洲二区在线视频| 一色屋精品亚洲香蕉网站| 欧美一区二区三区在| 色屁屁一区二区| 国产成人8x视频一区二区| 日日夜夜免费精品视频| 亚洲色图欧美激情| 国产性色一区二区| 欧美精品久久久久久久久老牛影院| 大桥未久av一区二区三区中文| 午夜精品一区二区三区三上悠亚| 欧美极品另类videosde| 69堂精品视频| 欧美中文字幕不卡| 成人av集中营| 国产成人免费视频网站| 美国十次了思思久久精品导航| 亚洲女人小视频在线观看| 国产欧美日韩另类一区| 欧美大片在线观看| 欧美精选一区二区| 在线视频国产一区| 91在线观看视频| www.性欧美| 成人综合在线视频| 国产精品小仙女| 国产在线播放一区| 老汉av免费一区二区三区| 日韩中文字幕91| 亚洲成国产人片在线观看| 伊人色综合久久天天| 国产精品成人免费| 日本一区二区成人| 国产性天天综合网| 国产片一区二区| 国产日韩综合av| 欧美激情综合五月色丁香小说| 久久久久久久av麻豆果冻| 欧美成人bangbros| 欧美va在线播放| 精品久久国产老人久久综合| 精品国产凹凸成av人导航| 日韩精品一区二区三区视频在线观看 | 亚洲精品国产品国语在线app| 国产精品国产三级国产aⅴ中文 | 国产大片一区二区| 国产成人一区在线| 成人av在线影院| 91亚洲精华国产精华精华液| 色婷婷久久久久swag精品| 欧美在线综合视频| 欧美日韩1区2区| 日韩欧美中文字幕精品| 亚洲精品一区二区三区福利| 精品成人在线观看| 国产精品乱码一区二区三区软件| 中文字幕在线不卡视频| 亚洲永久精品大片| 免费人成网站在线观看欧美高清| 国产专区综合网| 日韩免费观看2025年上映的电影| 日韩精品一区二区三区四区视频| 久久精品一二三| 亚洲日本在线视频观看| 亚洲成人av在线电影| 久久97超碰色| av亚洲精华国产精华精华| 日本韩国视频一区二区| 欧美福利电影网| 国产欧美精品日韩区二区麻豆天美| 综合电影一区二区三区| 午夜精品福利一区二区蜜股av| 精品影视av免费| 91视视频在线观看入口直接观看www | 91精品在线一区二区| 久久婷婷色综合| 亚洲人成人一区二区在线观看| 日韩精品一级二级| 国产精品99精品久久免费| 色国产综合视频| 精品蜜桃在线看| 亚洲人xxxx| 国内成人精品2018免费看| 99re这里都是精品| 日韩欧美一区二区三区在线| 最新中文字幕一区二区三区 | 亚洲欧美国产三级| 久久99精品久久久久久国产越南 | 欧美亚洲国产bt| 2欧美一区二区三区在线观看视频| 自拍偷自拍亚洲精品播放| 麻豆精品国产91久久久久久| 色婷婷久久99综合精品jk白丝| 国产欧美日韩在线观看| 亚洲美女一区二区三区| 久久99国内精品| 欧美亚日韩国产aⅴ精品中极品| 7777精品伊人久久久大香线蕉 | 欧美一区三区四区| 18成人在线视频| 国产在线精品免费av| 欧美日韩国产系列| 亚洲视频一区二区在线观看| 激情综合色播激情啊| 欧美久久婷婷综合色| 亚洲欧美偷拍三级| 国产成a人无v码亚洲福利| 91精品国产综合久久久久| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 免费成人小视频| 欧美日韩亚洲综合一区| 日韩美女视频一区| 国产成人午夜精品影院观看视频| 日韩一区二区三区视频在线| 亚洲韩国一区二区三区| av电影在线观看一区| 中文久久乱码一区二区| 国产在线日韩欧美| 精品久久久久久无| 秋霞电影一区二区| 51午夜精品国产| 亚洲大片在线观看| 欧美中文字幕一区| 亚洲男人的天堂在线观看| 不卡视频一二三四| 国产精品日产欧美久久久久| 国产精品99久久久久| 国产欧美一区二区在线观看| 国内精品第一页| 国产亚洲精品aa午夜观看| 国产激情一区二区三区| 久久精品一区四区| 国产成人aaa| 中文字幕在线不卡一区二区三区| 成人精品免费网站| 亚洲欧洲av色图| 91社区在线播放| 亚洲影视资源网| 在线电影国产精品| 美女精品自拍一二三四| 精品少妇一区二区三区在线播放 | 中日韩av电影| 99精品视频在线观看| 亚洲三级久久久| 欧美日韩一区成人| 免费精品视频在线| 久久一区二区三区四区| 国产成人免费av在线| 中文字幕欧美一| 精品视频在线免费| 麻豆精品国产91久久久久久| 久久久九九九九| 91在线播放网址| 天堂久久久久va久久久久| 欧美一区二区三区四区五区| 激情文学综合网| 亚洲欧洲日本在线| 欧美日韩在线免费视频| 青青草国产成人av片免费| 久久婷婷色综合| 91色婷婷久久久久合中文| 五月天婷婷综合| 亚洲成人一区在线| 久久久精品一品道一区| 色婷婷综合久久久久中文| 蜜臀国产一区二区三区在线播放| 国产日韩欧美a|