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

📄 huffmanprocess.h

📁 实现了对文本文件的huffman编码与解码过程
💻 H
字号:
#include <iostream>
using namespace std;

void HuffmanP(float queue1[], float queue2[][25], int numforexist)
{
	int front1  = 0;
	int front2 = 0;
	int end2 = 0;
	int numforuse = 0;  //the number of value can be used in queue2 


	for(int i=0; i<numforexist-1; i++, numforuse++, end2++)
	{

		if(numforuse == 0)
		{
			queue2[1][end2] = queue1[front1] + queue1[front1+1];
			queue2[0][end2] = front1 + 1;
			queue2[2][end2] = front1 + 2;
			front1 = front1 + 2;
		}
		else if(numforuse == 1)
		{

			if(queue2[1][front2]>=queue1[front1] && queue2[1][front2]>=queue1[front1+1] && front1<numforexist-1)
			{
				queue2[1][end2] = queue1[front1] + queue1[front1+1];
				queue2[0][end2] = front1 + 1;
				queue2[2][end2] = front1 + 2;
				front1 = front1 + 2;	
			}
			else
			{
				queue2[1][end2] = queue1[front1] + queue2[1][front2];
				queue2[0][end2] = front1+1;
				queue2[2][end2] = 0 - front2-1;
				front1 = front1 + 1;
				front2 = front2 + 1;
				numforuse--;
			}
		}
		else
		{
			if(queue2[1][front2]>=queue1[front1] && queue2[1][front2]>=queue1[front1+1] && front1<numforexist-1)
			{
				queue2[1][end2] = queue1[front1] + queue1[front1+1];
				queue2[0][end2] = front1 + 1;
				queue2[2][end2] = front1 + 2;
				front1 = front1 + 2;	
			}
			else if(queue2[1][front2]<queue1[front1] && queue2[1][front2+1]<queue1[front1] || front1 == numforexist-1 || front1 == numforexist)
			{
				queue2[1][end2] = queue2[1][front2] + queue2[1][front2+1];
				queue2[0][end2] = 0 - front2 - 1;
				queue2[2][end2] = 0 - front2 - 2;
				front2 = front2 + 2;
				numforuse = numforuse - 2;
			}
			else
			{
				queue2[1][end2] = queue1[front1] + queue2[1][front2];
				queue2[0][end2] = front1 + 1;
				queue2[2][end2] = 0 - front2 - 1;
				front1 = front1 + 1;
				front2 = front2 + 1;
				numforuse--;
			}
		}

	}
}

⌨️ 快捷键说明

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