public void print_node(int nodeIndex=-1, int level = 0)
{
if (nodeIndex == -1) {
nodeIndex = this.RootI;
}
for (int i = 0; i < level; i++)
{
Console.Write(" ");
}
var node = this.Nodes[nodeIndex];
Console.Write("{0}, {1}, {2}-{3} ", node.LogKt, node.LogProbability, node.NumberOf0S, node.NumberOf1S);
if (node.Child1 != -1) {
Console.Write("{0}: {1}, ", "1:", node.Child1);
}
if (node.Child0 != -1)
{
Console.Write("{0}: {1}, ", "0:", node.Child0);
}
Console.WriteLine();
if (node.Child1 != -1)
{
this.print_node(node.Child1, level + 1);
}
if (node.Child0 != -1)
{
this.print_node(node.Child0, level + 1);
}
}