Пример #1
0
        public Node ReadTrie()
        {
            bool isLeaf = BinaryStdIn.ReadBoolean();

            if (isLeaf)
            {
                return(new Node(BinaryStdIn.ReadChar(), -1, null, null));
            }
            return(new Node('\0', -1, ReadTrie(), ReadTrie()));
        }
Пример #2
0
        public void Expand()
        {
            Node root = ReadTrie();
            int  n    = BinaryStdIn.ReadInt();

            for (int i = 0; i < n; i++)
            {
                Node x = root;
                while (!x.IsLeaf())
                {
                    x = BinaryStdIn.ReadBoolean() ? x.right : x.left;
                    BinaryStdOut.Write(x.ch);
                }
            }

            BinaryStdOut.Close();
        }