0401 연결리스트로 구현한 이진트리 Preorder Traversal (Iterative) 복습

2021. 4. 1. 11:07C#/자료구조

public class BinaryTree
    {
        public BinaryTreeNode root;
        public BinaryTree(string data) 
        {
            this.root = new BinaryTreeNode(data);
        }
        

        public void PrintPreorderIterative()
        {
            var stack = new Stack<BinaryTreeNode>();
            stack.Push(this.root);
            while (stack.Count > 0) 
            {
                var node = stack.Pop();
                Console.WriteLine("{0}", node.data);
                if (node.right != null) 
                {
                    stack.Push(node.right);
                }
                if (node.left != null) 
                {
                    stack.Push(node.left);
                }
            }
        }
    }
public class App
    {
        public App() 
        {
            BinaryTree tree = new BinaryTree("A");
            tree.root.left = new BinaryTreeNode("B");
            tree.root.right = new BinaryTreeNode("C");
            tree.root.left.left = new BinaryTreeNode("D");
            tree.root.left.right = new BinaryTreeNode("E");
            tree.root.right.left = new BinaryTreeNode("F");

            tree.PrintPreorderIterative();
        }
    }