哈夫曼算法相同,哈夫曼编码为什么不同

来源:百度知道 编辑:UC知道 时间:2024/06/20 06:53:27
哈夫曼算法相同,哈夫曼编码为什么不同

根据程序而定.下面是我给你编写的算法,看一下吧
#include <stdio.h>
#include<iostream>
using namespace std;
struct Node
{
char character;
int weight;
int parent;
int left;
int righuffmannodes;
};
struct Code
{
char codes[10];
int head;
};
void InputHuffmanNodes(Node huffmannodes[],int &nodesNum)
{
char flag=',';
nodesNum=1;
cout<<"请按照(character1,weight1),(character2,weight2)的格式输入哈夫曼节点,"<<endl;
cout<<"输入回车退出:"<<endl;
while(flag==',')
{
scanf("(%c,%d)%c",&huffmannodes[nodesNum].character,&huffmannodes[nodesNum].weight,&flag);
nodesNum++;
}
nodesNum--;
}
void Coding(Node huffmannodes[],Code huffmancodes[],int nodesNum)
{
int f,l,r,c,m1,m2;
Code temp;
for(int i=1;i<=2*nodesNum-1;i++)
huffmannodes[i].parent=huffmannodes[i].left=huffm