Problem Solving Techniques and Data Structures
Course Objectives
2
• Problem Solving
Techniques
• Array, List, Stack, Queue
• Sorting Technique
• Searching Techniques
• Tree Data structure
www.hexaware.com | © Hexaware Technologies. All rights reserved. 3
Introduction to Problem Solving Techniques
www.hexaware.com | © Hexaware Technologies. All rights reserved. 124
Tree Data Structure
Trees
5
• A tree is a non-linear data structure that consists of a root node
and
potentially many levels of additional nodes that form a
hierarchy
• Nodes that have no children are called leaf nodes
• Non-root and non-leaf nodes are called internal nodes
Trees
6
Trees
Organization chart represented via a tree data structure
7
Tree Traversal
8
• Two main methods:
– Inorder
– Preorder
– Postorder
• Inorder
• Preorder:
– visit the root
– traverse in preorder the children
(subtrees)
• Postorder
– traverse in postorder the children
(subtrees)
Tree traversal (cont..)
9
Tree traversal (cont..)
10
Tree traversal (cont..)
11
Binary Search
Tree
12
• Binary Search Tree is a node-based binary tree data structure which has
the
following properties:
– The left subtree of a node contains only nodes with keys lesser
than the node’s key.
– The right subtree of a node contains only nodes with keys greater
than the node’s key.
– The left and right subtree each must also be a binary search tree.
Binary Search Tree
Following are the basic operations of a
tree
Search
Insert
Pre-order Traversal
In-order Traversal
Post-order
Traversal
13
creating a binary search tree
Suppose the data elements are - 45, 15, 79, 90, 10, 55, 12, 20,
50
Step 1 - Insert
45.
Step 2 - Insert
15.
As 15 is smaller than 45, so insert it as the root
node
of the left subtree.
14
creating a binary search tree
Step 3 - Insert 79.
As 79 is greater than 45, so insert
it as the root node of the right
subtree.
Step 4 - Insert 90.
90 is greater than 45 and 79, so it
will be inserted as the right
subtree of 79.
15
creating a binary search tree
Step 5 - Insert 10.
10 is smaller than 45 and 15, so
it will be inserted as a left
subtree of 15.
Step 6 - Insert 55.
55 is larger than 45 and smaller
than 79, so it will be inserted as
the left subtree of 79.
16
creating a binary search tree
Step 7 - Insert 12.
12 is smaller than 45 and 15 but
greater than 10, so it will be
inserted as the right subtree of
10.
Step 8 - Insert 20.
20 is smaller than 45 but greater
than 15, so it will be inserted as the
right subtree of 15.
17
creating a binary search tree
Step 9 - Insert 50.
50 is greater than 45 but smaller than
79 and 55. So, it will be inserted as a
left subtree of 55.
18
AVL
Tree
19
• AVL Tree can be defined as height balanced binary search tree in which
each node is associated with a balance factor which is calculated by
subtracting the height of its right sub-tree from that of its left sub-tree.
• Tree is said to be balanced if balance factor of each node is in between -1
to 1,
otherwise, the tree will be unbalanced and need to be balanced.
• Balance Factor (k) = height (left(k)) - height (right(k))
Why AVL
Tree?
20
• AVL tree controls the height of the binary search tree by not letting it to
be
skewed.
• We perform rotation in AVL tree only in case if Balance Factor is other
than -1, 0, and 1.
• There are basically four types of rotations which are as follows:
– L L rotation: Inserted node is in the left subtree of left subtree of A
– R R rotation : Inserted node is in the right subtree of right subtree of A
– L R rotation : Inserted node is in the right subtree of left subtree of A
– R L rotation : Inserted node is in the left subtree of right subtree of A
RR
Rotation
• When BST becomes unbalanced, due to a node is inserted into the right
subtree of the right subtree of A, then we perform RR rotation, RR
rotation is an anticlockwise rotation, which is applied on the edge below
a node having balance factor -2
21
LL
Rotation
• When BST becomes unbalanced, due to a node is inserted into the left
subtree of the left subtree of C, then we perform LL rotation, LL rotation is
clockwise rotation, which is applied on the edge below a node having
balance factor 2.
22
LR
Rotation
• Double rotations are bit tougher than single rotation which has already
explained above. LR rotation = RR rotation + LL rotation, i.e.,
• first RR rotation is performed on subtree and then LL rotation is
performed on full tree, by full tree we mean the first node from the path
of inserted node whose balance factor is other than -1, 0, or 1.
23
RL
Rotation
• R L rotation = LL rotation + RR rotation, i.e., first LL rotation is performed
on subtree and then RR rotation is performed on full tree, by full tree we
mean the first node from the path of inserted node whose balance factor
is other than -1, 0, or 1.
24
www.hexaware.com | © Hexaware Technologies. All rights reserved. 145
Quiz
What data structure can be used to check if a syntax has balanced paranthesis ?
A - queue
B - tree
C - list
D - stack
D - stack
1
Which of the following algorithm is not stable?
A - Bubble Sort
B - Quick Sort
C - Merge Sort
D - Insertion Sort
B - Quick Sort
2
146
Which of the following is a linear data structure?
A - queue
B - tree
C - Array
D - stack
C - Array
3
Which of the following represents the Postorder Traversal of a Binary Tree?
A - Left -> Right -> Root
B - Left -> Root -> Right
C - Right -> Left -> Root
D - Right -> Root -> Left
4
A - Left -> Right ->
Root
147
Which of the following is not the correct statement for a stack data structure?
A - Arrays can be used to implement the stack
B - Stack follows FIFO
C - Elements are stored in a sequential manner
D - Top of the stack contains the last inserted element
B - Stack follows FIFO
5
Which one of the following techniques is not used in the Binary tree?
A. Randomized traversal
B. Preorder traversal
C. Postorder traversal
D. Inorder traversal
A - Randomized
traversal
6
148
Which of the following options is not true about the Binary Search tree?
A. The value of the left child should be less than the root node
B. The value of the right child should be greater than the root node.
C. The left and right sub trees should also be a binary search tree
D. None of the above
D - None of the above
7
How can we define a AVL tree?
A. A tree which is binary search tree and height balanced tree.
B. A tree which is a binary search tree but unbalanced tree.
C. A tree with utmost two children
D. A tree with utmost three children
A - A tree which is binary search tree and height balanced
tree.
8
29
Learning material references
30
• Books
– “Introduction to Algorithms”, Thomas H Cormen, Charles Leiserson, Ronald
Rivest and Clifford Stein, 3rd edition, MIT, July 2009
– “Problem Solving Using C: Structured Programming Techniques”, Yuksel
Uckan ,
McGraw-Hill Inc.,1998
– "Data Structures and Algorithms Made Easy in Java: Data Structure and
Algorithmic
Puzzles", Narasimha Karumanchi, areerMonk Publications, 2014
• Web
– http://www.slideshare.net/dokka/program-design-and-problem-solving-
techniques
Innovative Services
Passionate Employees
Delighted Customers
Thank
you
www.hexaware.com
31
www.hexaware.com | © Hexaware Technologies. All rights

4.Problem Solving Techniques and Data Structures.pptx

  • 1.
    Problem Solving Techniquesand Data Structures
  • 2.
    Course Objectives 2 • ProblemSolving Techniques • Array, List, Stack, Queue • Sorting Technique • Searching Techniques • Tree Data structure
  • 3.
    www.hexaware.com | ©Hexaware Technologies. All rights reserved. 3 Introduction to Problem Solving Techniques
  • 4.
    www.hexaware.com | ©Hexaware Technologies. All rights reserved. 124 Tree Data Structure
  • 5.
    Trees 5 • A treeis a non-linear data structure that consists of a root node and potentially many levels of additional nodes that form a hierarchy • Nodes that have no children are called leaf nodes • Non-root and non-leaf nodes are called internal nodes
  • 6.
  • 7.
    Trees Organization chart representedvia a tree data structure 7
  • 8.
    Tree Traversal 8 • Twomain methods: – Inorder – Preorder – Postorder • Inorder • Preorder: – visit the root – traverse in preorder the children (subtrees) • Postorder – traverse in postorder the children (subtrees)
  • 9.
  • 10.
  • 11.
  • 12.
    Binary Search Tree 12 • BinarySearch Tree is a node-based binary tree data structure which has the following properties: – The left subtree of a node contains only nodes with keys lesser than the node’s key. – The right subtree of a node contains only nodes with keys greater than the node’s key. – The left and right subtree each must also be a binary search tree.
  • 13.
    Binary Search Tree Followingare the basic operations of a tree Search Insert Pre-order Traversal In-order Traversal Post-order Traversal 13
  • 14.
    creating a binarysearch tree Suppose the data elements are - 45, 15, 79, 90, 10, 55, 12, 20, 50 Step 1 - Insert 45. Step 2 - Insert 15. As 15 is smaller than 45, so insert it as the root node of the left subtree. 14
  • 15.
    creating a binarysearch tree Step 3 - Insert 79. As 79 is greater than 45, so insert it as the root node of the right subtree. Step 4 - Insert 90. 90 is greater than 45 and 79, so it will be inserted as the right subtree of 79. 15
  • 16.
    creating a binarysearch tree Step 5 - Insert 10. 10 is smaller than 45 and 15, so it will be inserted as a left subtree of 15. Step 6 - Insert 55. 55 is larger than 45 and smaller than 79, so it will be inserted as the left subtree of 79. 16
  • 17.
    creating a binarysearch tree Step 7 - Insert 12. 12 is smaller than 45 and 15 but greater than 10, so it will be inserted as the right subtree of 10. Step 8 - Insert 20. 20 is smaller than 45 but greater than 15, so it will be inserted as the right subtree of 15. 17
  • 18.
    creating a binarysearch tree Step 9 - Insert 50. 50 is greater than 45 but smaller than 79 and 55. So, it will be inserted as a left subtree of 55. 18
  • 19.
    AVL Tree 19 • AVL Treecan be defined as height balanced binary search tree in which each node is associated with a balance factor which is calculated by subtracting the height of its right sub-tree from that of its left sub-tree. • Tree is said to be balanced if balance factor of each node is in between -1 to 1, otherwise, the tree will be unbalanced and need to be balanced. • Balance Factor (k) = height (left(k)) - height (right(k))
  • 20.
    Why AVL Tree? 20 • AVLtree controls the height of the binary search tree by not letting it to be skewed. • We perform rotation in AVL tree only in case if Balance Factor is other than -1, 0, and 1. • There are basically four types of rotations which are as follows: – L L rotation: Inserted node is in the left subtree of left subtree of A – R R rotation : Inserted node is in the right subtree of right subtree of A – L R rotation : Inserted node is in the right subtree of left subtree of A – R L rotation : Inserted node is in the left subtree of right subtree of A
  • 21.
    RR Rotation • When BSTbecomes unbalanced, due to a node is inserted into the right subtree of the right subtree of A, then we perform RR rotation, RR rotation is an anticlockwise rotation, which is applied on the edge below a node having balance factor -2 21
  • 22.
    LL Rotation • When BSTbecomes unbalanced, due to a node is inserted into the left subtree of the left subtree of C, then we perform LL rotation, LL rotation is clockwise rotation, which is applied on the edge below a node having balance factor 2. 22
  • 23.
    LR Rotation • Double rotationsare bit tougher than single rotation which has already explained above. LR rotation = RR rotation + LL rotation, i.e., • first RR rotation is performed on subtree and then LL rotation is performed on full tree, by full tree we mean the first node from the path of inserted node whose balance factor is other than -1, 0, or 1. 23
  • 24.
    RL Rotation • R Lrotation = LL rotation + RR rotation, i.e., first LL rotation is performed on subtree and then RR rotation is performed on full tree, by full tree we mean the first node from the path of inserted node whose balance factor is other than -1, 0, or 1. 24
  • 25.
    www.hexaware.com | ©Hexaware Technologies. All rights reserved. 145 Quiz
  • 26.
    What data structurecan be used to check if a syntax has balanced paranthesis ? A - queue B - tree C - list D - stack D - stack 1 Which of the following algorithm is not stable? A - Bubble Sort B - Quick Sort C - Merge Sort D - Insertion Sort B - Quick Sort 2 146
  • 27.
    Which of thefollowing is a linear data structure? A - queue B - tree C - Array D - stack C - Array 3 Which of the following represents the Postorder Traversal of a Binary Tree? A - Left -> Right -> Root B - Left -> Root -> Right C - Right -> Left -> Root D - Right -> Root -> Left 4 A - Left -> Right -> Root 147
  • 28.
    Which of thefollowing is not the correct statement for a stack data structure? A - Arrays can be used to implement the stack B - Stack follows FIFO C - Elements are stored in a sequential manner D - Top of the stack contains the last inserted element B - Stack follows FIFO 5 Which one of the following techniques is not used in the Binary tree? A. Randomized traversal B. Preorder traversal C. Postorder traversal D. Inorder traversal A - Randomized traversal 6 148
  • 29.
    Which of thefollowing options is not true about the Binary Search tree? A. The value of the left child should be less than the root node B. The value of the right child should be greater than the root node. C. The left and right sub trees should also be a binary search tree D. None of the above D - None of the above 7 How can we define a AVL tree? A. A tree which is binary search tree and height balanced tree. B. A tree which is a binary search tree but unbalanced tree. C. A tree with utmost two children D. A tree with utmost three children A - A tree which is binary search tree and height balanced tree. 8 29
  • 30.
    Learning material references 30 •Books – “Introduction to Algorithms”, Thomas H Cormen, Charles Leiserson, Ronald Rivest and Clifford Stein, 3rd edition, MIT, July 2009 – “Problem Solving Using C: Structured Programming Techniques”, Yuksel Uckan , McGraw-Hill Inc.,1998 – "Data Structures and Algorithms Made Easy in Java: Data Structure and Algorithmic Puzzles", Narasimha Karumanchi, areerMonk Publications, 2014 • Web – http://www.slideshare.net/dokka/program-design-and-problem-solving- techniques
  • 31.
    Innovative Services Passionate Employees DelightedCustomers Thank you www.hexaware.com 31 www.hexaware.com | © Hexaware Technologies. All rights