WT_Node LoadNode(BinaryReader Input, WT_Inner parent)
{
// Console.WriteLine ("xxxxxxxxx LoadNode");
var isInner = Input.ReadBoolean ();
if (isInner) {
var node = new WT_Inner (parent, false);
node.B = GenericIO<Bitmap>.Load (Input);
var hasLeft = Input.ReadBoolean ();
if (hasLeft) {
node.Left = this.LoadNode (Input, node);
}
var hasRight = Input.ReadBoolean ();
if (hasRight) {
node.Right = this.LoadNode (Input, node);
}
return node;
} else {
// var count = Input.ReadInt32 ();
var symbol = Input.ReadInt32 ();
// Console.WriteLine ("--leaf> count: {0}, symbol: {1}", count, symbol);
//var leaf = new WT_Leaf (parent, symbol, count);
var leaf = new WT_Leaf (parent, symbol);
this.Alphabet[symbol] = leaf;
return leaf;
}
}