当前位置: 首页>>代码示例>>C++>>正文


C++ HuffmanTree::Compress方法代码示例

本文整理汇总了C++中HuffmanTree::Compress方法的典型用法代码示例。如果您正苦于以下问题:C++ HuffmanTree::Compress方法的具体用法?C++ HuffmanTree::Compress怎么用?C++ HuffmanTree::Compress使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在HuffmanTree的用法示例。


在下文中一共展示了HuffmanTree::Compress方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: derp

int derp()
{
	//testing huffmanqueue
	cout << "what";

	HuffmanQueue<HuffmanTreeNode, NodeComp> queue;
	
	Huffman tm;

	map<char, int> TextMap = tm.GetMap();
	map<char, int>::iterator it = tm.GetIterator();
	//priority_queue<HuffmanTreeNode*, deque<HuffmanTreeNode*>, NodeComp> queue;
	HuffmanTreeNode *t;

	for(it = TextMap.begin(); it!=TextMap.end(); it++)
	{
		t = new HuffmanTreeNode(it->first, it->second);
		queue.push(t);
	}

	do
	{

		HuffmanTreeNode *temp;
		HuffmanTreeNode * ref1 = queue.top();
		queue.pop();
		if(!queue.empty())
		{
			HuffmanTreeNode * ref2 = queue.top();
			queue.pop();
			temp = new HuffmanTreeNode(NULL, ref1->getFreq() + ref2->getFreq());
			temp->SetLeftNode(ref1);
			temp->SetRightNode(ref2);
		}else
		{
			temp = new HuffmanTreeNode(NULL, ref1->getFreq());
			temp->SetLeftNode(ref1);
			temp->SetRightNode(NULL);
		}

		queue.push(temp);

	}while(queue.size()!=1);

	HuffmanTree* tree = new HuffmanTree(queue.top());

	tree->BuildMap(queue.top());
	//tree->GetChars(queue.top());

	cout << "Printing Map \n";
	tree->printMap();

	string x = tree->Encrypt("go go gophers");

	cout<<"Encrypting 'go go gophers' . :: "<<x<<endl<<endl;

	tree->Compress(x);


	cout<<"Decrypting '"<<x<<"' . :: "<<tree->Decrypt(x)<<endl;

	system("pause");
	return 0;
}
开发者ID:GavinKenna,项目名称:HuffmanAlgorithm,代码行数:64,代码来源:Queue.cpp


注:本文中的HuffmanTree::Compress方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。