View
2.138
Download
1
Category
Preview:
DESCRIPTION
Explains the basic concept of Tree and Graph traversal with several technical interview questions.
Citation preview
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)
Recommended