public Node ReadTrie() { bool isLeaf = BinaryStdIn.ReadBoolean(); if (isLeaf) { return(new Node(BinaryStdIn.ReadChar(), -1, null, null)); } return(new Node('\0', -1, ReadTrie(), ReadTrie())); }
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(); }