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

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

?? huffman.c

?? MSP430單片機C語言應用程序設計實例精講(秦龍編著)
?? C
字號:
#include <stdio.h>
#include <stdlib.h>

#define TRUE 1
#define FALSE 0

// 編碼的最大位數
#define MAXBITS		50
// 最大的字符數
#define MAXSYMBS	MAXBITS
// 樹中的最大節點
#define MAXNODES	2 * MAXSYMBS-1

struct CodeType {
	int nBits[MAXBITS];
	int nStartPos;
};

struct NodeType {
	int nFrequency;
	int nParent;
	int iSLeft;
};

// 隊列的插入刪除處理
void QueueInsert(int nWhich);
int QueueDelete(void);

// 定義全局變量
struct NodeType node[MAXNODES];
// 隊列最初位空
int rootnodes = -1;

void main(void)
{
	struct CodeType cd, code[MAXSYMBS];
	int i;
	int nSymbolsNum;
	int nBitCount;
	int nNextNode;
	int nLeftNode, nRightNode;
	int root;
	int thisnode;
	char symbol, alphabet[MAXSYMBS];

	// 清空字符數組
	for(i = 0; i < MAXSYMBS; i++)
	{
		alphabet[i] = ' ';
	}

	/*// 有多少個字符
	printf("Please input char's count\n");
	scanf("%d", &nSymbolsNum);

	printf("Please input char and frequencies\n");
	// 得到數據和每個字符的頻率
	for(i = 0; i < nSymbolsNum; i++)
	{
		scanf("%s%d", &symbol, &node[i].nFrequency);
		QueueInsert(i);
		alphabet[i] = symbol;
	}*/

	//構造信源數據
	nSymbolsNum = 3;
	alphabet[0] = 'a';
	node[0].nFrequency = 8;
	QueueInsert(0);
	alphabet[1] = 'b';
	node[1].nFrequency = 2;
	QueueInsert(1);
	alphabet[2] = 'c';
	node[2].nFrequency = 5;
	QueueInsert(2);

	// 形成Huffman樹
	for(nNextNode =  nSymbolsNum;
		nNextNode < 2 * nSymbolsNum - 1;
		nNextNode ++)
	{
		nLeftNode = QueueDelete();
		nRightNode = QueueDelete();
		
		// 形成新的樹,作為子節點
		node[nLeftNode].nParent = nNextNode;
		node[nRightNode].nParent = nNextNode;
		node[nLeftNode].iSLeft = TRUE;
		node[nRightNode].iSLeft = FALSE;
	
		// 父節點的頻率是兩個子節點頻率之和
		node[nNextNode].nFrequency = 
			node[nLeftNode].nFrequency + node[nRightNode].nFrequency;
		
		//插入節點
		QueueInsert( nNextNode);
	}

    // 根節點
	root = QueueDelete();
	// 根據樹進行編碼
	for(i = 0; i < nSymbolsNum; i++)
	{
		// 搜索的初始點
		cd.nStartPos = MAXBITS;

		// 對樹進行遍歷,對內容進行編碼
		thisnode = i;
		while(thisnode != root)
		{
			--cd.nStartPos;
			cd.nBits[cd.nStartPos] = node[thisnode].iSLeft ? 0 : 1;
			thisnode = node[thisnode].nParent;
		}

		// 內容拷貝
		for(nBitCount = cd.nStartPos; nBitCount < MAXBITS; nBitCount++)
		{
			code[i].nBits[nBitCount] = cd.nBits[nBitCount];
		}
		code[i].nStartPos = cd.nStartPos;
	}

	for(i = 0; i < nSymbolsNum; i++)
	{
		printf("\n%c %d ", alphabet[i], node[i].nFrequency);
		for(nBitCount = code[i].nStartPos; nBitCount < MAXBITS; nBitCount++)
		{
			printf("%d", code[i].nBits[nBitCount]);
		}
		printf("\n");
	}
}
// 將節點插入到隊列里
void QueueInsert(int nWhich)
{
	int thisnode, previous;
	// 隊列是否為空
	if(rootnodes == -1)
	{
		// 空隊列
		node[nWhich].nParent = -1;
		rootnodes = nWhich;
	}
	else
	{
		thisnode = rootnodes; 
		previous = -1;
		//搜索大的節點
		while((thisnode != -1) && 
			(node[thisnode].nFrequency < node[nWhich].nFrequency))
		{
			previous = thisnode;
			thisnode = node[thisnode].nParent;
 		}

		// 連接到第一個大的節點
		node[nWhich].nParent = thisnode;
		if(previous != -1)
		{
			// 拷貝
			node[previous].nParent = nWhich;
		}
		else
		{
			// 插入到開始位置
			rootnodes = nWhich;
		}
	}
}

//從優先隊列里去掉第一個結點
int QueueDelete(void)
{
	int thisnode = rootnodes;
	rootnodes = node[thisnode].nParent;
	return thisnode;
}
	

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线不卡中文字幕播放| 麻豆精品新av中文字幕| 91欧美一区二区| 日韩毛片一二三区| 欧美写真视频网站| 日韩精品91亚洲二区在线观看| 欧美日韩在线播| 蜜臀va亚洲va欧美va天堂| 日韩精品在线网站| 国产成人av网站| 亚洲日本在线天堂| 欧美日韩和欧美的一区二区| 美国三级日本三级久久99| xfplay精品久久| 99精品久久久久久| 亚洲成人免费观看| 精品久久99ma| av一区二区三区在线| 亚洲一区在线视频| 精品国产乱码91久久久久久网站| 国产91精品一区二区麻豆网站| 自拍视频在线观看一区二区| 91精品国产麻豆| 国产精品一二三| 亚洲一区二区三区视频在线播放| 91精品福利在线一区二区三区| 国产精品18久久久久久vr| 亚洲精品菠萝久久久久久久| 日韩精品一区二区三区swag| 91免费观看视频| 美女视频黄免费的久久| 国产精品高潮呻吟| 日韩亚洲电影在线| 99在线精品一区二区三区| 天堂资源在线中文精品| 国产精品亲子乱子伦xxxx裸| 欧美精品色一区二区三区| 国产成人h网站| 日韩 欧美一区二区三区| 成人欧美一区二区三区视频网页 | 在线观看91精品国产入口| 久久国内精品视频| 夜色激情一区二区| 国产日韩欧美不卡| 日韩一级视频免费观看在线| 95精品视频在线| 国产精品一区二区在线看| 日韩国产一区二| 一区二区三区日韩在线观看| 国产日韩欧美一区二区三区综合| 91精品国产综合久久蜜臀| 91免费版pro下载短视频| 国产精品亚洲а∨天堂免在线| 日本麻豆一区二区三区视频| 亚洲影院理伦片| 综合中文字幕亚洲| 国产人成一区二区三区影院| 欧美日韩国产首页| 91久久一区二区| 99re66热这里只有精品3直播| 国产在线视视频有精品| 日本成人在线一区| 午夜久久久影院| 一区二区三区欧美激情| 国产精品久久久久影院亚瑟| 久久嫩草精品久久久久| 精品成人一区二区三区四区| 日韩一区二区在线看片| 欧美精品精品一区| 欧美日本乱大交xxxxx| 欧美视频一区在线| 欧美在线视频全部完| 日本韩国欧美国产| 欧美丝袜丝nylons| 欧美亚洲一区三区| 在线一区二区三区四区五区| 一本久道中文字幕精品亚洲嫩| 99久久99久久久精品齐齐| 972aa.com艺术欧美| 91在线免费播放| 色综合久久综合网97色综合| 色av成人天堂桃色av| 91片黄在线观看| 91丝袜美腿高跟国产极品老师| 91在线视频免费观看| 色婷婷久久久综合中文字幕| 91久久精品国产91性色tv| 色成年激情久久综合| 欧美日韩成人在线一区| 91精品免费在线| 日韩视频一区二区三区| 精品久久人人做人人爽| 久久精品水蜜桃av综合天堂| 国产精品色一区二区三区| 亚洲欧美一区二区三区国产精品| 亚洲欧美在线视频观看| 亚洲国产精品视频| 美腿丝袜亚洲三区| 不卡的av中国片| 色哟哟国产精品| 91精彩视频在线观看| 欧美日韩黄色影视| www日韩大片| 日韩理论电影院| 亚洲h动漫在线| 狠狠色综合播放一区二区| 国产精品一区在线| 色就色 综合激情| 欧美一区二区女人| 国产丝袜在线精品| 一区二区三区在线观看欧美| 天堂蜜桃一区二区三区| 国产剧情一区在线| 欧美最新大片在线看| 欧美成人精精品一区二区频| 亚洲国产精品黑人久久久| 亚洲香肠在线观看| 国产一区欧美一区| 色综合天天综合网国产成人综合天| 欧美日韩一区二区三区免费看| 欧美电视剧在线观看完整版| 国产精品嫩草久久久久| 日本va欧美va精品发布| 丁香另类激情小说| 欧美精三区欧美精三区| 日本一区二区不卡视频| 青青草国产精品97视觉盛宴| 高清不卡一区二区在线| 欧美日韩精品高清| 国产精品国产三级国产普通话三级| 天天操天天色综合| 99视频国产精品| 精品国内片67194| 亚洲永久免费视频| 成人av在线播放网站| 日韩小视频在线观看专区| 亚洲精品国产品国语在线app| 国产一区二区三区黄视频 | 欧美三区在线观看| 国产精品女同互慰在线看| 免费观看日韩av| 在线观看三级视频欧美| 国产精品欧美综合在线| 九色综合狠狠综合久久| 欧美日韩精品二区第二页| 综合久久综合久久| 国产ts人妖一区二区| 精品国产乱码久久久久久图片| 亚洲午夜在线视频| 91免费在线看| 18涩涩午夜精品.www| 成人免费观看视频| 26uuu亚洲婷婷狠狠天堂| 天堂蜜桃一区二区三区| 欧美亚一区二区| 亚洲精品福利视频网站| 91片黄在线观看| 中文字幕亚洲一区二区av在线| 国产一区二区三区蝌蚪| 亚洲精品在线观| 久久精品国产77777蜜臀| 欧美日韩高清在线| 性做久久久久久久久| 欧美亚洲尤物久久| 亚洲一级片在线观看| 91成人国产精品| 亚洲精品乱码久久久久| 日本道在线观看一区二区| 亚洲另类春色国产| 91精品福利视频| 亚洲国产日产av| 欧美日韩aaa| 青青国产91久久久久久 | 麻豆精品一区二区三区| 日韩一区二区三区av| 免费久久精品视频| 日韩欧美激情一区| 紧缚捆绑精品一区二区| 国产亚洲欧美一级| 成年人午夜久久久| 亚洲男人的天堂一区二区| 欧美午夜一区二区三区| 亚欧色一区w666天堂| 91精品国产综合久久久久久久久久| 午夜影院在线观看欧美| 欧美一区国产二区| 韩国精品免费视频| 国产欧美日韩卡一| 99久久精品国产观看| 艳妇臀荡乳欲伦亚洲一区| 欧美色精品天天在线观看视频| 日韩av中文在线观看| 精品乱码亚洲一区二区不卡| 成人黄色电影在线| 亚洲日韩欧美一区二区在线| 欧美视频中文一区二区三区在线观看| 天天色图综合网| 久久久高清一区二区三区| 99精品视频在线播放观看| 亚洲一区成人在线|