我在打印出我的结构成员时遇到了一些麻烦。这是我到目前为止所拥有的:
struct Code
{
char letter;
string sequence;
}
void createCode(HuffmanNode *root, string codestr, Code *codeBook, int count)
{
if(root->getRight() == NULL && root->getLeft() == NULL)
{
Code code;
code.letter = root->getLetter();
code.sequence = codestr;
codeBook[count] = code;
count++;
}
else
{
createCode(root->getLeft(), codestr + "1", codeBook, count);
createCode(root->getRight(), codestr + "0", codeBook, count);
}
}
这一切正常,但主要是当我尝试在 Codebook 中的代码数组中打印出成员序列时:
string codestr;
count = 0;
Code codeBook[256];
createCode(root, string codestr, codeBook, count); //root is already created
for(int i = 256; i >= 0; i--)
{
if(isalpha(codeBook[i].letter))
cout << codeBook[i].sequence << " ";
}
只打印我存储的最后一个字符串。可能有人知道解决方法以及为什么会这样吗?如果有人可以提供帮助,那就太好了!