求哈夫曼编码的C++算法

我已经建好了哈夫曼树,但是编码过程有点问题,我写的函数编译能通过但运行时会出现“该引用内存不能read”求一个编码函数!其中结点是structHufNode{unsign... 我已经建好了哈夫曼树,但是编码过程有点问题,我写的函数编译能通过但运行时会出现“该引用内存不能read”
求一个编码函数!

其中结点是
struct HufNode
{
unsigned int weight;
char data;
HufNode *lChild;
HufNode *rChild;
HufNode *parent;
};
哈夫曼树是
class HuffmanTree
{
public:
HufNode *root
};

叶节点为 HuffmanTree leaf[i].root ,共n个
编码函数是这样的:
void HuffmanCode(int n,HuffmanTree *leaf)
{
HufNode *p;
for(int i=0;i<n;i++)
{
char *code;
code=(char *)malloc(10*sizeof(char));
static int j=0;
p=leaf[i].root;
while(p->parent!=NULL)
{
if(p->parent->lChild==p)
code[j]=0;
if(p->parent->rChild==p)
code[j]=1;
p=p->parent;
j++;
}
cout<<leaf[i].root->data<<"的编码为: ";
for(;j>=0;j--)
cout<<code[j];
cout<<endl;
delete []code;
}
}

其中leaf[i].root是指向已读入的叶节点的指针
展开
 我来答
windog18
2008-11-05
知道答主
回答量:28
采纳率:0%
帮助的人:0
展开全部
该引用内存不能read
是由于非法引用内存引起的
你看你是不是用了没赋值的野指针
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式