-
03/31 BinaryTree 전위, 중위, 후위 순회 출력자료구조/수업내용 2021. 3. 31. 17:22
Program.cs
using System; namespace Study09 { class Program { static void Main(string[] args) { Console.WriteLine("Main"); new App(); } } }
App.cs
using System; namespace Study09 { public class App { //생성자 public App() { Console.WriteLine("App"); BinaryTree tree = new BinaryTree("A"); tree.root.left = new BinaryNode("B"); tree.root.right = new BinaryNode("C"); tree.root.left.left = new BinaryNode("D"); tree.root.left.right = new BinaryNode("E"); tree.root.right.left = new BinaryNode("F"); Console.WriteLine("\n전위 순회"); tree.PreorderTraversal(); Console.WriteLine("\n중위 순회"); tree.InorderTraversal(); Console.WriteLine("\n후위 순회"); tree.PostorderTraversal(); } } }
BinaryNode.cs
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Study09 { public class BinaryNode { public string data; public BinaryNode left; public BinaryNode right; public BinaryNode(string data) { this.data = data; } } }
BinaryTree.cs
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Study09 { public class BinaryTree { public BinaryNode root; public BinaryTree(string data) { this.root = new BinaryNode(data); } //전위순회 (Preorder Traversal) public void PreorderTraversal() { this.PreorderTraversalImple(this.root); } private void PreorderTraversalImple(BinaryNode node) { if (node == null) return; Console.Write(node.data); this.PreorderTraversalImple(node.left); this.PreorderTraversalImple(node.right); } //중위 순회 public void InorderTraversal() { this.InorderTraversalImple(this.root); } private void InorderTraversalImple(BinaryNode node) { if (node == null) return; this.InorderTraversalImple(node.left); Console.Write("{0}", node.data); this.InorderTraversalImple(node.right); } //후위 순회 public void PostorderTraversal() { this.PostorderTraversalImple(this.root); } private void PostorderTraversalImple(BinaryNode node) { if (node == null) return; this.PostorderTraversalImple(node.left); this.PostorderTraversalImple(node.right); Console.Write("{0}", node.data); } } }
'자료구조 > 수업내용' 카테고리의 다른 글
04/01 BinaryTree Preorder 순회 (Iterative) 복습 (0) 2021.04.01 03/31 수업내용 메모 (0) 2021.03.31 03/31 BinaryTree 배열로 구현하기 (0) 2021.03.31 03/30 수업내용 메모 (0) 2021.03.30 03/30 단일 연결 리스트로 Stack 구현 (0) 2021.03.30