, strLen;
? ? for (int i = 0; i < HC.size(); ++i)
? ? {
? ? ? ? p = HT.size() - 1;? ? ? ? ? ? ? ? ? ? ? ? //回到根结点
? ? ? ? codeTmp = HC[i];
? ? ? ? strLen = codeTmp.size();
? ? ? ? for (int j = 0; j < strLen; ++j)
? ? ? ? {
? ? ? ? ? ? if (codeTmp[j] == '0')
? ? ? ? ? ? {
? ? ? ? ? ? ? ? p = HT[p].lchild;
? ? ? ? ? ? }
? ? ? ? ? ? else
? ? ? ? ? ? {
? ? ? ? ? ? ? ? p = HT[p].rchild;
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? SrcCode.push_back(HT[p].weight);? ?
? ? }
}? ?
void HuffTree::HuffmanCode(vector &HT, vector &HC, const vector &wgh)
{
? ? if (wgh.empty())
? ? {
? ? ? ? return;
? ? }
? ? InitHuffTree(HT, wgh);
? ? BuildHuffTree(HT, wgh);
? ? HuffCodeing(HT, HC, wgh);
}