资源简介
采用三叉链表结构:每个节点包含左右孩子指针和父指针。构造函数中,每次选取权值最小的两个根节点,构成新的节点。
每个符号的Huffman编码用0\1串。编码算法实现了给定节点实现它的0\1串,译码算法实现给定0\1串找出该节点
代码片段和文件信息
// Huffman.cpp : 定义控制台应用程序的入口点。
//
#include “stdafx.h“
#include“HuffmanTree.h“
int _tmain(int argc _TCHAR* argv[])
{
HuffmanNode node1={‘A‘0.06-1-1-1};
HuffmanNode node2={‘B‘0.14-1-1-1};
HuffmanNode node3={‘C‘0.53-1-1-1};
HuffmanNode node4={‘D‘0.15-1-1-1};
HuffmanNode node5={‘E‘0.12-1-1-1};
// HuffmanNode node1={‘A‘0.06-1-1-1};
vector huffnode;
huffnode.push_back(node1);
huffnode.push_back(node2);
huffnode.push_back(node3);
huffnode.push_back(node4);
huffnode.push_back(node5);
HuffmanTree huffmantree(huffnode);
vector m=huffmantree.GetCode(2);
for(int i=0;i cout< cout< vector source;
source.push_back(0);
source.push_back(0);
source.push_back(1);
cout< system(“pause“);
return 0;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 876 2013-03-25 17:13 Huffman\Huffman\Huffman.cpp
文件 4630 2013-03-25 15:42 Huffman\Huffman\Huffman.vcproj
文件 1407 2013-03-25 22:35 Huffman\Huffman\Huffman.vcproj.My-PC.金彬.user
文件 1629 2013-03-25 17:10 Huffman\Huffman\HuffmanTree.cpp
文件 694 2013-03-25 17:07 Huffman\Huffman\HuffmanTree.h
文件 1183 2013-03-25 15:25 Huffman\Huffman\ReadMe.txt
文件 212 2013-03-25 15:25 Huffman\Huffman\stdafx.cpp
文件 233 2013-03-25 15:25 Huffman\Huffman\stdafx.h
文件 498 2013-03-25 15:25 Huffman\Huffman\targetver.h
文件 1256448 2013-03-25 22:35 Huffman\Huffman.ncb
文件 887 2013-03-25 15:25 Huffman\Huffman.sln
..A..H. 12288 2013-03-25 22:35 Huffman\Huffman.suo
目录 0 2013-03-30 12:36 Huffman\Huffman
目录 0 2013-03-30 12:36 Huffman
----------- --------- ---------- ----- ----
1280985 14
评论
共有 条评论