// Configuración de los códigos de los nodos del árbol. Método recursivo. public void setCodeToTheTree(string code, HuffmanNode Nodes) { if (Nodes == null) { return; } if (Nodes.leftTree == null && Nodes.rightTree == null) { Nodes.code = code; return; } setCodeToTheTree(code + "0", Nodes.leftTree); setCodeToTheTree(code + "1", Nodes.rightTree); }
// Imprimir los símbolos y códigos de los Nodos en el árbol. public void PrintfLeafAndCodes(HuffmanNode nodeList) { if (nodeList == null) { return; } if (nodeList.leftTree == null && nodeList.rightTree == null) { Console.WriteLine("Symbol : {0} - Code : {1}", nodeList.symbol, nodeList.code); return; } PrintfLeafAndCodes(nodeList.leftTree); PrintfLeafAndCodes(nodeList.rightTree); }
// ¡Imprimiendo todo el árbol! Método recursivo. public void PrintTree(int level, HuffmanNode node) { if (node == null) { return; } for (int i = 0; i < level; i++) { Console.Write("\t"); } Console.Write("[" + node.symbol + "]"); Test.setColor(); Console.WriteLine("(" + node.code + ")"); Test.setColorDefault(); PrintTree(level + 1, node.rightTree); PrintTree(level + 1, node.leftTree); }