public static void DFS(TreeNode root) { if (root == null) return; Console.WriteLine (root.value); DFS (root.left); DFS (root.right); }
public static void BFS(TreeNode root) // BFS == using a queue!!!! { Queue<TreeNode> nodeQueue = new Queue<TreeNode> (); Console.WriteLine (root.value); nodeQueue.Enqueue (root); while (nodeQueue.Count != 0) { TreeNode temp = nodeQueue.Dequeue (); if (temp.left != null) { Console.WriteLine (temp.left.value); nodeQueue.Enqueue (temp.left); } if (temp.right != null) { Console.WriteLine (temp.right.value); nodeQueue.Enqueue (temp.right); } } }
public static void Main (string[] args) { //construct a simple binary tree using treenodes TreeNode Node1 = new TreeNode (3); TreeNode Node2 = new TreeNode (9); TreeNode Node3 = new TreeNode (20); TreeNode Node4 = new TreeNode (15); TreeNode Node5 = new TreeNode (17); TreeNode Node6 = new TreeNode (11); TreeNode Node7 = new TreeNode (13); TreeNode Node8 = new TreeNode (71); Node1.left = Node2; Node1.right = Node3; Node3.left = Node4; Node3.right = Node5; Node4.left = Node6; Node4.right = Node7; Node5.left = Node8; SearchTree.BFS (Node1); SearchTree.DFS (Node1); }