private bool CreateHuffmanTree() { Logger.LogDebug("■CreateHuffmanTree:" + codewordLengths.Length); huffmanRoot = new HuffmanNode(); for (int i = 0; i < codewordLengths.Length; i++) { if (codewordLengths[i] > 0) { if (huffmanRoot.SetNewValue(codewordLengths[i], i) == false) { Logger.LogError("■huffmanRoot.SetNewValue Error"); return(false); } } else { //Logger.LogError( "■EntryLengths Zero" ); } } return(true); }
public bool SetNewValue(int aDepth, int aValue) { if (GetFullFlag() == true) { return(false); } if (aDepth == 1) { if (o0 == null) { o0 = new HuffmanNode(this, aValue); return(true); } if (o1 == null) { o1 = new HuffmanNode(this, aValue); return(true); } } else { if (o0 == null) { o0 = new HuffmanNode(this); } if (o0.SetNewValue(aDepth - 1, aValue) == true) { return(true); } if (o1 == null) { o1 = new HuffmanNode(this); } if (o1.SetNewValue(aDepth - 1, aValue) == true) { return(true); } } return(false); }