/// <summary> /// /// </summary> public string[] GetSymbolCodes() { string[] symbolCodes = new string[byte.MaxValue + 1]; rootNode.GetSymbolCode(symbolCodes); return(symbolCodes); }
/// <summary> /// /// </summary> /// /// <param name="symbolCodes"></param> /// /// <returns></returns> public void GetSymbolCode(string[] symbolCodes) { if (IsLeaf) // The node is leaf => add it's prefix code to the hashtable. { symbolCodes[symbol] = prefix; } else // The node is not a leaf => recursively process it's children. { leftChildNode.GetSymbolCode(symbolCodes); rightChildNode.GetSymbolCode(symbolCodes); } }