internal void PrintTree(Node MarkNode = null, int Level = 0, String Label = "L")
            {
                string Info = "";

                if (this == MarkNode)
                {
                    Info = " (mark)";
                }

                Console.WriteLine(
                    "{0}- {1}:{2}{3}",
                    new String(' ', Level * 2),
                    Label, this, Info
                    );

                if (LeftNode != null)
                {
                    LeftNode.PrintTree(MarkNode, Level + 1, "L");
                }

                if (RightNode != null)
                {
                    RightNode.PrintTree(MarkNode, Level + 1, "R");
                }
            }