Upcoming SlideShare
×

# Search tree & graph

2,178 views

Published on

Explains the basic concept of Tree and Graph traversal with several technical interview questions.

Published in: Technology
1 Like
Statistics
Notes
• Full Name
Comment goes here.

Are you sure you want to Yes No
Your message goes here
• Be the first to comment

Views
Total views
2,178
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
56
0
Likes
1
Embeds 0
No embeds

No notes for slide

### Search tree & graph

1. 1. Xproject Tehnical Interview SessionJanuary 11, 2013Michael JoMjtoolbox.wordpress.com
2. 2. Agenda – Trees & Graphs• Approach• Trees • Binary Tree • Binary Search Tree • Binary Heap• Graph• Traversal• Search • BFS • DFS• Questions
3. 3. ApproachTrees and graphs questions typically come in one of two forms:1. Implement a tree / find a node / delete a node / other well knownalgorithm.2. Implement a modification of a known algorithm.
4. 4. Trees• Parent• Child• Descendent• Ancestor• Leaves• Root (Current node)• Red-black tree • In-Order search. O(log n)
5. 5. Data StructureBinary TreeBinary Search Tree (Ordered/Sorted Binary Tree)• Left child and descendent value < node itself• Right child and descendent value > node itselfBinary Heap• Each child of node value < node itselfBinary Tree Binary Search Tree Binary Heap
6. 6. Binary 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, 110In-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
7. 7. Tree Traversal Exercise• 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
8. 8. Graph• Vertices - Nodes• Edges - Lines• Directed graph• Undirected graphDirected Graph Undirected Graph
9. 9. SearchBreadth 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.
10. 10. Question 1Implement In-Order traversal of Binary Tree with numbers. One withrecursion, one without recursion.http://youtu.be/2lxVhW5-GTkhttp://mjtoolbox.wordpress.com/snippet/tree-traversal
11. 11. Question 2Given a binary tree, check whether it is Binary Search Tree or not.This demonstrates Tree Traversal algorithm.http://www.ardendertat.com/2011/10/10/programming-interview-questions-7-binary-search-tree-check/http://mjtoolbox.wordpress.com/snippet/tree-traversal
12. 12. Question 3Given a binary tree of integers, print it in level order. The output will containspace between the numbers in the same level, and new line betweendifferent levels.Output should be :123456This demonstrates Breadth First tree traversal algorithm.http://www.ardendertat.com/2011/12/05/programming-interview-questions-20-tree-level-order-print/
13. 13. Question 4 (Extra)Given the root of a binary search tree and 2 numbers min and max, trim thetree 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, ifwe get this tree as input and min value as 5 and max value as 13, then theresulting 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/