public void CreatePreAndInOrder() { int N; N = int.Parse(Console.ReadLine()); for (int i = 0; i < maxSize; i++) { preOrder[i] = empty; inOrder[i] = empty; } if (N > 0 && N <= maxSize) { int idx_pre = 0; int idx_in = 0; for (int i = 0; i < 2 * N; i++) { string[] strs = Console.ReadLine().Split(new string[] { " " }, StringSplitOptions.None); if (strs[0] == "Push") { StackTreeData data = new StackTreeData(); data.content = int.Parse(strs[1]); preOrder[idx_pre++] = data.content; StackTree.Push(data); } else if (strs[0] == "Pop") { StackTreeData data = StackTree.Pop(); inOrder[idx_in++] = data.content; } } } GetPostOrder(preOrder, inOrder); PrintOut(); }
public void CreatePreAndInOrder(string path) { for (int i = 0; i < maxSize; i++) { preOrder[i] = empty; inOrder[i] = empty; } using (FileStream fs = new FileStream(path, FileMode.Open)) { using (StreamReader sr = new StreamReader(fs)) { int N; N = int.Parse(sr.ReadLine()); if (N > 0 && N <= maxSize) { int idx_pre = 0; int idx_in = 0; for (int i = 0; i < 2 * N; i++) { string[] strs = sr.ReadLine().Split(new string[] { " " }, StringSplitOptions.None); if (strs[0] == "Push") { StackTreeData data = new StackTreeData(); data.content = int.Parse(strs[1]); preOrder[idx_pre++] = data.content; StackTree.Push(data); } else if (strs[0] == "Pop") { StackTreeData data = StackTree.Pop(); inOrder[idx_in++] = data.content; } } } } } GetPostOrder(preOrder, inOrder); PrintOut(); }