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

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

?? ht.cpp

?? 這是數據結構學習過程中的實驗 關于哈弗曼的編碼和譯碼。 算法還有待改進
?? CPP
字號:
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace std;


#define NO 100//最多no個葉子,編碼、譯碼最大長度
#define MO 2*NO-1 //最多mo個結點

struct HT
{
	int weight;
	int lch, rch, parent;
};

HT ht[NO+1];//0單元不用

struct HNode
{
	char ch;
	char bit[NO];
	int start;
};

struct HNode ha[MO+1];
int n, m;
//判斷次數

void select(int t, int &s1, int &s2)
{//從1~t里找出parent==0且權重為最小、次小
	int w1, w2, i;
	w1 = 32767;
	w2 = w1;
	s1 = s2 = 0;
	for(i = 1; i <= t; i++)		
	{	if(ht[i].parent == 0 && ht[i].weight < w1)
			{
					s2 = s1;//將最小的編號送給s2當次小編號
					w2 = w1;//將w1送到w2當次小
					w1 = ht[i].weight;
					s1 = i;
			}
		else	
			if(ht[i].parent == 0 && ht[i].weight < w2)
			{
					w2 = ht[i].weight;
					s2 = i;
			}
			
	}
	//for
}//select

void creatHT_HNode()
{
	int i,child, parent, s1, s2;
	struct HNode dx;
	cout << "請輸入葉子數n:" << endl;
	cin >> n;
	m = 2*n-1;
	for(i = 1; i <= m; i++)
	{
		ht[i].lch = ht[i].rch = ht[i].parent = 0;	//初始化
	}

	for(i = 1; i <= n; i++)
	{
		cout << "請輸入字符ch,權值weight: " << endl;
		cin >> ha[i].ch >> ht[i].weight;
	}
	cout << "構造樹的過程" << endl;
	for(i = n+1; i <= m; i++)//生成樹
	{
		{
			select(i-1, s1, s2);
			ht[i].weight = ht[s1].weight + ht[s2].weight;//父親權重
			ht[i].lch = s1;
			ht[i].rch = s2;//父親的左右孩子
			ht[s1].parent = ht[s2].parent = i;//孩子的父親標號
		}

		{
				cout << ht[i].weight << "	" << endl;	
				cout << ht[s1].weight << " " << ht[s2].weight << endl;
				cout << endl;
		}
	}//構造樹


	for( i = 1; i <= n; i++)//進行編碼
	{
		dx.ch = ha[i].ch;
		dx.start = 0;//
		child = i;
		parent = ht[i].parent;
		while( parent != 0)
		{
			if(ht[parent].lch == child)//判斷左孩子為其左子樹
				dx.bit[ dx.start++] = '0';//左標記為0,且記號start+1
			else 
				if(ht[parent].rch == child)//判斷右孩子為其右子樹
				dx.bit[ dx.start++] = '1';//右標記為1,且記號start+1
			child = parent;//動態根結點下移到其子樹
			parent = ht[child].parent;//子樹的父親重新賦值
		}
		ha[i] = dx;//將一個葉子的編碼傳遞給對應的葉子結構體
	}
}

		
void printT(int root,int i)//輸出樹
{
	int j;
	for(j = 0; j <= i; j++)	
		cout << "   ";
	cout << ht[root].weight << " " << ha[root].ch << endl;
	if(ht[root].rch != 0 || ht[root].lch != 0)//判斷左右子樹是否為空
	{
		printT(ht[root].rch, ++i);	//進行遞歸
		printT(ht[root].lch, i++);	//進行遞歸
	}	
}//遍歷構造出來的樹



void print( HNode ha[],HT ht[])
{
	int i,k;
	for(i = 1; i<= m; i++)
	{
		cout << "字符:" << ha[i].ch;
		cout << "     權重:" << ht[i].weight;
		cout << "     編碼:";
		for( k = ha[i].start-1; k >= 0; k--)
		{		
			cout << ha[i].bit[k];
		}
		cout << "     左孩子:" << ht[i].lch << "     右孩子:" << ht[i].rch << "     父親:" << ht[i].parent << endl;
	}
}


void Coding()//進行編碼
{
	int i,k,t,j = NO;
	cout << "請輸入需要編碼的字符串(最長100):" << endl;
	char c[101];
	cin >> c;
	for(i = 0; i <= j; i++)//查找每個字符數組元素
	{
		for(t = 1;t <= n; t++)//查找葉子
		{
			if(ha[t].ch == c[i])//判斷字符與葉子是否相同
			{
				for( k = ha[t].start-1; k >= 0; k--)//從各個葉子的相應記錄開始輸出
				{		  
					cout << ha[t].bit[k];//輸出相應的編碼
				}//for
			}//if
		}//if
	}//for

	cout<<endl;
}


void HTCoding(HT ht[])//進行譯碼
{
	int i = 0, j = NO;
	int  p;
	char c[NO];//c存放要譯碼的字符
	p = m;//p指向根結點
	cout << "請輸入需要譯碼的字符串(最長100):" << endl;
	cin >> c;
	while(c[i] != '\0')
	{
			{	
				if(c[i] == '0')	p = ht[p].lch;//判斷c[i]中的值:0向左走
				else		p = ht[p].rch;  //1向右走
			}

			if(ht[p].rch == 0 && ht[p].rch == 0)//判斷
			{	
				cout << ha[p].ch << " ";
				p = m;//p繼續從根結點開始
			}

			i++;
	}

	cout<<endl;

}
void main()
{
	cout << "開始規定相應的字符 " << endl;
	creatHT_HNode();//建立相應的哈弗曼樹
	cout << endl << "樹為:" << endl;
	printT(m,0);//輸出樹
	cout << endl;
	print(ha,ht);//輸出各個結點信息
	cout << endl << endl;
	while(1)
	{
		cout << "		主程序		" << endl;
		cout << "請輸入想進行的操作:1.編碼	      2.譯碼		3.退出" << endl;
		char z;
			cin >> z;
			switch(z)
			{
			case '1':
				Coding();   //編碼
				continue;
			case '2':
				HTCoding(ht);  //譯碼
				continue;
			case '3':
				exit(1);
			default:;
			}
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
蜜桃视频一区二区三区在线观看| 亚洲色图色小说| 欧美日韩午夜影院| 色综合久久久久| 日本高清不卡视频| 在线看一区二区| 欧美日韩一区二区在线观看视频 | 亚洲乱码国产乱码精品精可以看 | 久久久精品人体av艺术| 日韩一区二区免费视频| 91精品国产高清一区二区三区| 56国语精品自产拍在线观看| 欧美一区二区三区四区久久| 日韩精品一区二区三区四区| 亚洲精品在线一区二区| 中文字幕免费在线观看视频一区| 中文字幕精品一区二区精品绿巨人| 国产精品国产馆在线真实露脸 | 五月婷婷另类国产| 蜜桃在线一区二区三区| 国产精品综合久久| 成人免费视频免费观看| 一本久道中文字幕精品亚洲嫩| 欧美性色黄大片手机版| 日韩欧美一二区| 国产精品欧美一级免费| 亚洲国产日韩av| 激情深爱一区二区| 91麻豆精东视频| 8v天堂国产在线一区二区| xvideos.蜜桃一区二区| 亚洲日穴在线视频| 久久精品99国产精品| av午夜一区麻豆| 日韩欧美高清dvd碟片| 国产精品福利一区| 日本不卡一区二区| 91在线观看一区二区| 日韩三级在线观看| 一区二区三区在线视频观看| 日本不卡视频在线| 色婷婷综合久久久中文一区二区| 日韩一区二区视频| 亚洲三级久久久| 国产sm精品调教视频网站| 欧美日韩mp4| 综合精品久久久| 国产一区二区三区四区五区入口| 欧美中文字幕一区二区三区亚洲| 久久精品综合网| 日本女人一区二区三区| 91久久精品午夜一区二区| 久久精品免费在线观看| 美女视频一区二区| 欧美日韩精品高清| 一二三区精品视频| 91在线观看美女| 国产精品私人自拍| 国产综合久久久久久鬼色| 欧美午夜精品久久久久久孕妇| 国产日韩精品一区二区浪潮av| 五月天中文字幕一区二区| 91蜜桃网址入口| 综合激情成人伊人| 97aⅴ精品视频一二三区| 国产日韩欧美精品一区| 国产一区欧美日韩| 久久精品一区二区三区不卡牛牛| 美女诱惑一区二区| 日韩欧美中文字幕公布| 日韩av一区二区三区| 69久久夜色精品国产69蝌蚪网| 亚洲国产精品视频| 欧美日韩高清一区二区| 亚洲国产乱码最新视频| 欧美日韩精品一区二区| 亚洲chinese男男1069| 欧美美女bb生活片| 五月天中文字幕一区二区| 欧美精品第一页| 免费在线成人网| 欧美大片在线观看| 国产原创一区二区| 欧美国产禁国产网站cc| 白白色 亚洲乱淫| 一区二区三区中文在线观看| 欧美在线观看视频一区二区 | 成人性视频免费网站| 欧美高清在线一区| 一本大道久久a久久综合| 一区二区三区精品| 日韩一区二区三区三四区视频在线观看 | 日韩一区二区三区四区| 国产麻豆精品视频| 亚洲人成影院在线观看| 欧美日韩视频专区在线播放| 美女尤物国产一区| 欧美高清在线视频| 欧美日韩国产综合一区二区三区| 热久久免费视频| 国产精品美女久久久久久久久| 93久久精品日日躁夜夜躁欧美| 亚洲电影中文字幕在线观看| 中文字幕中文在线不卡住| 在线免费亚洲电影| 久久99国产精品久久99| 中文字幕一区二区三区四区不卡 | 色婷婷亚洲精品| 日本午夜精品视频在线观看| 久久精品日韩一区二区三区| 91农村精品一区二区在线| 视频一区在线视频| 中文无字幕一区二区三区| 欧美图区在线视频| 国产成人精品影视| 午夜精品123| 国产精品免费视频观看| 日韩一区二区在线观看视频| 99久久精品国产一区| 精品在线一区二区三区| 亚洲欧美日韩在线不卡| 精品国产麻豆免费人成网站| 在线免费不卡电影| 成人国产免费视频| 久久er99精品| 天天综合网天天综合色 | 91碰在线视频| 国产久卡久卡久卡久卡视频精品| 亚洲成人久久影院| 亚洲欧洲一区二区三区| 日韩精品在线一区| 欧美日韩国产片| 91影院在线观看| 成人黄色一级视频| 国产精华液一区二区三区| 免费成人美女在线观看| 午夜影院在线观看欧美| 亚洲人精品午夜| 中文字幕一区二区在线播放| 久久综合九色综合97婷婷| 欧美一区二区三区成人| 制服丝袜国产精品| 欧美日产在线观看| 欧美日韩精品一区二区在线播放| 91网站在线观看视频| 波多野结衣一区二区三区| 国产精品白丝av| 国产·精品毛片| 国产成人激情av| 成人美女视频在线观看18| 国产精品1区二区.| 高清成人免费视频| 波多野结衣的一区二区三区| 成人免费高清在线| 97精品电影院| 欧美亚洲动漫制服丝袜| 欧美网站大全在线观看| 欧美日韩一区久久| 日韩欧美一区二区久久婷婷| 日韩精品一区二区三区在线| 26uuu久久天堂性欧美| 国产亚洲欧美色| 国产精品传媒入口麻豆| 亚洲精品久久嫩草网站秘色| 亚洲午夜久久久久久久久电影院| 亚洲狠狠丁香婷婷综合久久久| 亚洲国产精品久久一线不卡| 日韩高清一区二区| 国产精品一区专区| 99re6这里只有精品视频在线观看| 91免费版在线| 欧美一区二区三区精品| 久久综合精品国产一区二区三区| 欧美国产精品一区二区三区| 亚洲精品国产无天堂网2021| 性感美女久久精品| 激情综合色综合久久综合| 成人激情免费视频| 欧美揉bbbbb揉bbbbb| 久久综合久久综合久久| 亚洲素人一区二区| 日本人妖一区二区| 99久久精品免费看国产| 欧美日韩高清不卡| 国产精品视频一区二区三区不卡| 亚洲视频香蕉人妖| 热久久免费视频| caoporm超碰国产精品| 91精品国产一区二区三区蜜臀| 国产日韩一级二级三级| 亚洲国产精品一区二区尤物区| 国产一区二区在线免费观看| 色网站国产精品| 久久久久久电影| 亚洲第一av色| 白白色亚洲国产精品| 日韩精品最新网址| 亚洲成av人片一区二区| 成人黄页毛片网站| 26uuu亚洲综合色|