C# 89

[C#] Binary Search Tree(이진 탐색 트리) Add, Search, Remove

Add BinaryTree bt = new BinaryTree(); Node root = bt.AddChild(bt.Root, 50); // Binary Search Tree(이진 탐색 트리) bt.AddChild(root, 30); bt.AddChild(root, 1); bt.AddChild(root, 35); bt.AddChild(root, 70); bt.AddChild(root, 60); bt.AddChild(root, 80); public Node AddChild(Node root, int data) // Binary Search Tree 이진 탐색 트리 { if (root == null) return new Node(data); while (true) { if (data < root.Data) ..

C#/수업 내용 2021.09.30

[C#] 이진 트리 post-order(후위 순회)

후위 순회 post-order Recursive 후위 순회 post-order Stack public void PostOrderStack(Node root) { Stack stack = new Stack(); Node temp = root; Node prev = null; // Pop으로 반환한 값을 저장할 변수 while (temp != null || stack.Count != 0) { if (temp != null) { stack.Push(temp); temp = temp.Left; } else { temp = stack.Peek(); if (temp.Right == null || temp.Right == prev) // temp의 오른쪽이 비어있거나 이전에 Pop한 값이랑 같을때 { prev = s..

C#/수업 내용 2021.09.30

[C#] 이진 트리 in-order(중위 순회)

중위 순회 in-order Recursive public void InOrder(Node root) // 이진 트리 Recursive in-order { if (root.Left != null) InOrder(root.Left); Console.WriteLine(root.Data); if (root.Right != null) InOrder(root.Right); } 중위 순회 in-order Stack public void InOrderStack(Node root) // 이진 트리 Stack in-order { Stack nodes = new Stack(); while (true) { while (root != null) { nodes.Push(root); root = root.Left; } if (no..

C#/수업 내용 2021.09.30