search tree & graph
DESCRIPTION
Explains the basic concept of Tree and Graph traversal with several technical interview questions.TRANSCRIPT
Xproject Tehnical Interview Session
January 11, 2013
Michael Jo
Mjtoolbox.wordpress.com
Binary tree, graph search
• Approach• Trees• Binary Tree• Binary Search Tree• Binary Heap
•Graph• Traversal• Search•BFS•DFS•Questions
Agenda – Trees & Graphs
Trees and graphs questions typically come in one of two forms:
1. Implement a tree / find a node / delete a node / other well known algorithm.
2. Implement a modification of a known algorithm.
Approach
• Parent
• Child
• Descendent
• Ancestor
• Leaves
• Root (Current node)
• Red-black tree• In-Order search. O(log n)
Trees
Binary Tree
Binary Search Tree (Ordered/Sorted Binary Tree)• Left child and descendent value < node itself • Right child and descendent value > node itself
Binary Heap• Each child of node value < node itself
Data Structure
Binary Search Tree Binary HeapBinary Tree
Traversal•Depth First traversal• In-Order : Left child, Root, Right child (Used in BST)
• Pre-Order : Root, Left child, Right child
• Post-Order : Left child, Right child, Root
• Breadth First traversal• Not for large tree. O(n). Memory intense.
• 100, 50, 150, 25, 75, 125, 175, 110
Binary Tree
In-Order : 25, 50, 75, 100, 110, 125, 150, 175Pre-Order : 100, 50, 25, 75,150, 125, 110,175Post-Order : 25, 75, 50, 110, 125, 175, 150
• In-Order traversal sequence (left, root, right) : A, B, C, D, E, F, G, H, I
• Pre-Order traversal sequence (root, left, right) :F, B, A, D, C, E, G, I, H
• Post-Order traversal sequence (left, right, root) :A, C, E, D, B, H, I, G, F
Tree Traversal Exercise
• Vertices - Nodes
• Edges - Lines
• Directed graph
• Undirected graph
Graph
Directed Graph
Undirected Graph
Breadth First Search (BFS)• Searching a node and all its children before proceeding to its siblings.
• Use Queue data structure as an implementation.
Depth First Search (DFS)• Searching a node and its siblings before going on to any children.
• Use Stack data structure as an implementation.
• Tip 1 : Decide your search algorithm based on the scenario.
• Tip 2 : Avoid BFS in a large tree.
Search
http://youtu.be/2lxVhW5-GTk
http://mjtoolbox.wordpress.com/snippet/tree-traversal
Question 1Implement In-Order traversal of Binary Tree with numbers. One with recursion, one without recursion.
http://www.ardendertat.com/2011/10/10/programming-interview-questions-7-binary-search-tree-check/
http://mjtoolbox.wordpress.com/snippet/tree-traversal
Question 2Given a binary tree, check whether it is Binary Search Tree or not.This demonstrates Tree Traversal algorithm.
Given a binary tree of integers, print it in level order. The output will contain space between the numbers in the same level, and new line between different levels.Output should be :
1
2 3
4 5 6
This demonstrates Breadth First tree traversal algorithm.
http://www.ardendertat.com/2011/12/05/programming-interview-questions-20-tree-level-order-print/
Question 3
Given the root of a binary search tree and 2 numbers min and max, trim the tree such that all the numbers in the new tree are between min and max (inclusive). The resulting tree should still be a valid binary search tree. So, if we get this tree as input and min value as 5 and max value as 13, then the resulting binary search tree should be:
This will demonstrate tree traversal algorithm and deletion.
http://www.ardendertat.com/2012/01/17/programming-interview-questions-26-trim-binary-search-tree/
Question 4 (Extra)