SlideShare a Scribd company logo
1 of 29
Download to read offline
Tree
CSC-114 Data Structure and Algorithms
Outline
 Binary Tree Variations
 Binary Heap Tree
 Max Heap
 Min Heap
 Insertion
 Deletion
23/11/2015
Saba Anwar, Computer Science Department- CIIT Lahore
2
Binary Heap
23/11/2015
Saba Anwar, Computer Science Department- CIIT Lahore
3
 A binary tree which holds two properties:
 Heap Order Property:
 Min-Heap Property: Every node is smaller than or equal to each of its children
 Max-Heap Property: Every node is larger than or equal to each of its children
 Shape Property:
 Tree is complete.
 A tree that is full at all levels except last level, and nodes are filled from left to right
 Which tree is binary heap?
35
25
15
20
27
36
35
30
25
20
41 36
35
30
25
20
41
Finding Min
23/11/2015
Saba Anwar, Computer Science Department- CIIT Lahore
4
 Finding minimum or maximum?
 It will always be root node with max or min value depending upon it is min heap or
max heap.
 So constant time required
 What about removal?
36
35
30
25
20
41
19
15
30
25
41
20
Deletion
23/11/2015
Saba Anwar, Computer Science Department- CIIT Lahore
5
 Deleting minimum?
 Root node will be removed
 Which node will be next root node?
 It must be next minimum that is 25
 Then which node will come at place of 25?
 Again, the minimum in sub tree of 25
 Is this heap tree any more?
36
35
30
25
20
41
36
30
35
25
41
Deletion
23/11/2015
Saba Anwar, Computer Science Department- CIIT Lahore
6
 Deleting minimum?
 What if we replace root node with last inserted node?
 Now the completeness property is reserved
 But another problem is created, what is that?
36
35
30
25
41
36
35
30
25
20
41 36
35
30
25
41
41
Deletion
23/11/2015
Saba Anwar, Computer Science Department- CIIT Lahore
7
 We need to perform another process to maintain heap order
 After replacing root node, check if it is greater than its children, swap with appropriate
child.
 Repeat this process till leaf or parent node becomes smaller than its children
 This process is called Heapify-Down or Down Heap
36
35
30
25
41
36
35
30
41
25
36
41
30
35
25
Heapify-Down
23/11/2015
Saba Anwar, Computer Science Department- CIIT Lahore
8
 Example-2
 Deletion involves following steps:
1. Replace root node with last inserted node, to maintain shape
2. Heapify-Down process, to maintain heap order
36
35
25
30
20
41 36
35
25
30
41
36
35
41
30
25
Insertion
23/11/2015
Saba Anwar, Computer Science Department- CIIT Lahore
9
 Insertion of a new node
 Always insert from left to right to maintain shape property of left completeness
 Let say starting from root node how to decide that we should go left or right?
 Always remember where you inserted last node
 But heap property is not maintained
 Solution?
 Repeatedly check if parent is larger than node, then swap the node with parent
 Process is called Heapify-Up or Up Heap
25
25
35
30
25
35
20
30
25
35
Insertion
23/11/2015
Saba Anwar, Computer Science Department- CIIT Lahore
10
 Insertion of a new node
 Always insert from left to right to maintain shape property of left completeness
 How?
 Always remember where you inserted last node
 But heap property is not maintained
 Solution?
 Repeatedly check if parent is larger than node, then swap the node with parent
 Process is called Heapify-Up or Up Heap
25
25
35
30
25
35
20
30
25
35
 Insert 20
Swap with 35
Swap with 25
Heapify-Up
23/11/2015
Saba Anwar, Computer Science Department- CIIT Lahore
11
 Insert 35
 Insert 25
 Swap with parent if parent is larger
 Insert 30
 Parent is already smaller
35
25
35
30
25
25
20
30
35
25
35
25 35
30
20
25
35
30
25
20
 Insert 36
 Insert 41
 Insertion involves two steps:
1. Inserting node at correct position using last node, to maintain left completeness
2. Heapify-Up process, to maintain heap order
Insertion
23/11/2015
Saba Anwar, Computer Science Department- CIIT Lahore
12
35
30
25
20
41
36
Implementation
23/11/2015
Saba Anwar, Computer Science Department- CIIT Lahore
14
 Using Linked Memory Allocation
 Maintain two nodes:
 Root
 Last node
 Using Array
 Children of node at location k
 Left -> 2K+1
 Right -> 2K+2
 Parent of a node located at k
 (k-1)/2 (consider integer division)
0 1 2 3 4 5 6
20 25 30 35 36 41 null
35
30
25
20
41
36
Using Array
23/11/2015
Saba Anwar, Computer Science Department- CIIT Lahore
15
 Root is always 1st index
 Last node’s index is = size-1
 No need of functions for left, right, parent
 Just do calculation
 Deletion is always replacing root with last
 Then Heapify-Down
 Insertion is always at end of current nodes
 And then Heapify-Up
35
30
25
20
41
36
0 1 2 3 4 5 6
20 25 30 35 36 41 null
Using Linked Memory Allocation
23/11/2015
Saba Anwar, Computer Science Department- CIIT Lahore
16
 Need to maintain last node?
 In Deletion
1. Root is replaced with Last node
2. Last node is updated
3. And then Heapify-Down
 In Insertion
1. Last node used to find correct location for new node
2. Node is inserted
3. Last node is updated
4. And then Heapify-Up
35
30
25
20
41
36
0 1 2 3 4 5 6
20 25 30 35 36 41 null
Example
23/11/2015
Saba Anwar, Computer Science Department- CIIT Lahore
17
 See the figure, it’s a max heap
 Here last node is 4
 If we delete 48
 Which node will become last node now?
 In array?
 In Linked allocation?
0 1 2 3 4 5 6
48 35 40 10 16 34 4
0 1 2 3 4 5 6
40 35 34 10 16 4 null
After deletion
Example
23/11/2015
Saba Anwar, Computer Science Department- CIIT Lahore
18
 Last node is 4
 Insert 50
 Which node will become last node now?
 In array?
 In Linked allocation?
 Perform few more insertions and deletions
 It will give you good understanding of last node
0 1 2 3 4 5 6
40 35 34 10 16 4 null
0 1 2 3 4 5 6
50 35 40 10 16 4 34
After insertion
Deletion: Linked Implementation
24/11/2015
Saba Anwar, Computer Science Department- CIIT Lahore
19
 Delete
 Last is right node
 Last= sibling
Last
Last
Heapify-Down
Last
Last
Deletion: Linked Implementation
24/11/2015
Saba Anwar, Computer Science Department- CIIT Lahore
20
 Delete
 Last is left node
 go up, until root or node is right
 21 is right
 last= most right of sibling 17
Heapify-Down
Last
Last
Last
Deletion: Linked Implementation
24/11/2015
Saba Anwar, Computer Science Department- CIIT Lahore
21
 Perform delete in each figure to see how last is updated
Last
Last
Last
Last
Deletion: Linked Implementation
24/11/2015
Saba Anwar, Computer Science Department- CIIT Lahore
22
1. Replace root with last node
2. Update last node
1. Find parent of last node
2. If last is right node
 last=parent.left
 parent.right=null
3. Else If last is left node
 Parent.left=null
 Repeatedly move up in hierarchy to parent nodes of parent until you reach root node or a node that is right node
 If root node
 grand parent is left child
 Last= most right node of root
 Else //its right node
 Last= most right of sibling of this node
3. Perform Heapify-Down process
Insertion: Linked Implementation
23/11/2015
Saba Anwar, Computer Science Department- CIIT Lahore
23
 Insert 35
 Insert 25
 Last node is itself a root node
 New node will become left node
 Heapify-up(last)
 Now 35 is last node
 Insert 30
 Last node is a left node
 New node will become right node
 No need of Heapify-Up
 Now 30 is last node
35
25
35
30
35
25
35
25
Heapify-Up
Last
Last Last
Last
 Insert 20
 Last node is right child
 Go up until you reach a node that is either left or root node
 25 is root, go to left until you reach leaf node that is 35
 Insert new node as left node
 Now 35 is last node
Insertion- Linked Implementation
23/11/2015
Saba Anwar, Computer Science Department- CIIT Lahore
24
20
30
35
25
35
30
25
20
30
35
25
Heapify-Up
Last Last
Last
 Insert 36
 Last node is a left node
 New node will become right node
 No need of Heapify-Up
 Now 36 is last node
 Insert 41
 Last node is right child
 Go up until you reach a node that is either left or root node
 25 is left child, go to its sibling that is 30
 Insert new node as left node
 No need of Heapify-Up
 Now 41 is last node
 How much time it will take to find insertion location?
Insertion- Linked Implementation
23/11/2015
Saba Anwar, Computer Science Department- CIIT Lahore
25
35
30
25
20
36
35
30
25
20
41
36
Insertion: Linked Implementation
24/11/2015
Saba Anwar, Computer Science Department- CIIT Lahore
26
1. If last node is root node
 new node is left child
2. If last node is left node
 new node is right node of parent of last
3. Otherwise, repeatedly go to parent nodes of last until you reach
a node that is either root node or a left child of its parent.
 If node is root node
 then simply go to its left until you reach leaf node
 If node is left child
 then go to its sibling node
 new node is left child of this node // (sibling will be a leaf node)
 last=new node //update last
 Perform Heapify_Up process
35
30
25
20
41
36
Last
Applications
23/11/2015
Saba Anwar, Computer Science Department- CIIT Lahore
27
 Priority Queue
 Heap data structure is mainly as priority queue, often they are used as synonyms
 Highest priority is always on top.
 Time complexity of binary tree depends upon height of tree which is equivalent to logN. Where
N is total number of nodes.
 What can be heap tree’s worst case?
Data
Structure
FindMin Add Remove
Unsorted Array O(n) O(1) O(n)
Sorted Array O(1) O(n) O(1)
Unsorted List O(n) O(1) O(n)
Sorted List O(1) O(n) O(1)
Heap O(1) O(log n) O(log n)
Applications
23/11/2015
Saba Anwar, Computer Science Department- CIIT Lahore
28
 Heapsort
 Heap tree can also be used to sort a list of numbers
 How?
 Build the heap tree from given list
 Reconstruct list by repeatedly doing the following:
 Remove min and put in list until tree becomes empty
 Time Complexity? O(nlogn)
 Remove min?
 Total number of nodes?
Applications
23/11/2015
Saba Anwar, Computer Science Department- CIIT Lahore
29
 Selection Algorithms
 Finding kth minimum or maximum number from list? Depends upon structure?
 Insertion?
Data Structure Find Insert
Unsorted List O(n) O(1)
Sorted List O(1) O(n)
Heap O(1) O(log n)
HomeWork-3
23/11/2015
Saba Anwar, Computer Science Department- CIIT Lahore
30
 Book Problems:
 9.24
 9.25
 9.26

More Related Content

Recently uploaded

Transparency, Recognition and the role of eSealing - Ildiko Mazar and Koen No...
Transparency, Recognition and the role of eSealing - Ildiko Mazar and Koen No...Transparency, Recognition and the role of eSealing - Ildiko Mazar and Koen No...
Transparency, Recognition and the role of eSealing - Ildiko Mazar and Koen No...
EADTU
 
SURVEY I created for uni project research
SURVEY I created for uni project researchSURVEY I created for uni project research
SURVEY I created for uni project research
CaitlinCummins3
 
會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文
會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文
會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文
中 央社
 

Recently uploaded (20)

The Story of Village Palampur Class 9 Free Study Material PDF
The Story of Village Palampur Class 9 Free Study Material PDFThe Story of Village Palampur Class 9 Free Study Material PDF
The Story of Village Palampur Class 9 Free Study Material PDF
 
Transparency, Recognition and the role of eSealing - Ildiko Mazar and Koen No...
Transparency, Recognition and the role of eSealing - Ildiko Mazar and Koen No...Transparency, Recognition and the role of eSealing - Ildiko Mazar and Koen No...
Transparency, Recognition and the role of eSealing - Ildiko Mazar and Koen No...
 
SURVEY I created for uni project research
SURVEY I created for uni project researchSURVEY I created for uni project research
SURVEY I created for uni project research
 
8 Tips for Effective Working Capital Management
8 Tips for Effective Working Capital Management8 Tips for Effective Working Capital Management
8 Tips for Effective Working Capital Management
 
Observing-Correct-Grammar-in-Making-Definitions.pptx
Observing-Correct-Grammar-in-Making-Definitions.pptxObserving-Correct-Grammar-in-Making-Definitions.pptx
Observing-Correct-Grammar-in-Making-Definitions.pptx
 
TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT TOÁN 2024 - TỪ CÁC TRƯỜNG, TRƯỜNG...
TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT TOÁN 2024 - TỪ CÁC TRƯỜNG, TRƯỜNG...TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT TOÁN 2024 - TỪ CÁC TRƯỜNG, TRƯỜNG...
TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT TOÁN 2024 - TỪ CÁC TRƯỜNG, TRƯỜNG...
 
Improved Approval Flow in Odoo 17 Studio App
Improved Approval Flow in Odoo 17 Studio AppImproved Approval Flow in Odoo 17 Studio App
Improved Approval Flow in Odoo 17 Studio App
 
PSYPACT- Practicing Over State Lines May 2024.pptx
PSYPACT- Practicing Over State Lines May 2024.pptxPSYPACT- Practicing Over State Lines May 2024.pptx
PSYPACT- Practicing Over State Lines May 2024.pptx
 
OSCM Unit 2_Operations Processes & Systems
OSCM Unit 2_Operations Processes & SystemsOSCM Unit 2_Operations Processes & Systems
OSCM Unit 2_Operations Processes & Systems
 
How To Create Editable Tree View in Odoo 17
How To Create Editable Tree View in Odoo 17How To Create Editable Tree View in Odoo 17
How To Create Editable Tree View in Odoo 17
 
會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文
會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文
會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文會考英文
 
Major project report on Tata Motors and its marketing strategies
Major project report on Tata Motors and its marketing strategiesMajor project report on Tata Motors and its marketing strategies
Major project report on Tata Motors and its marketing strategies
 
OS-operating systems- ch05 (CPU Scheduling) ...
OS-operating systems- ch05 (CPU Scheduling) ...OS-operating systems- ch05 (CPU Scheduling) ...
OS-operating systems- ch05 (CPU Scheduling) ...
 
Mattingly "AI & Prompt Design: Named Entity Recognition"
Mattingly "AI & Prompt Design: Named Entity Recognition"Mattingly "AI & Prompt Design: Named Entity Recognition"
Mattingly "AI & Prompt Design: Named Entity Recognition"
 
diagnosting testing bsc 2nd sem.pptx....
diagnosting testing bsc 2nd sem.pptx....diagnosting testing bsc 2nd sem.pptx....
diagnosting testing bsc 2nd sem.pptx....
 
male presentation...pdf.................
male presentation...pdf.................male presentation...pdf.................
male presentation...pdf.................
 
ĐỀ THAM KHẢO KÌ THI TUYỂN SINH VÀO LỚP 10 MÔN TIẾNG ANH FORM 50 CÂU TRẮC NGHI...
ĐỀ THAM KHẢO KÌ THI TUYỂN SINH VÀO LỚP 10 MÔN TIẾNG ANH FORM 50 CÂU TRẮC NGHI...ĐỀ THAM KHẢO KÌ THI TUYỂN SINH VÀO LỚP 10 MÔN TIẾNG ANH FORM 50 CÂU TRẮC NGHI...
ĐỀ THAM KHẢO KÌ THI TUYỂN SINH VÀO LỚP 10 MÔN TIẾNG ANH FORM 50 CÂU TRẮC NGHI...
 
Scopus Indexed Journals 2024 - ISCOPUS Publications
Scopus Indexed Journals 2024 - ISCOPUS PublicationsScopus Indexed Journals 2024 - ISCOPUS Publications
Scopus Indexed Journals 2024 - ISCOPUS Publications
 
DEMONSTRATION LESSON IN ENGLISH 4 MATATAG CURRICULUM
DEMONSTRATION LESSON IN ENGLISH 4 MATATAG CURRICULUMDEMONSTRATION LESSON IN ENGLISH 4 MATATAG CURRICULUM
DEMONSTRATION LESSON IN ENGLISH 4 MATATAG CURRICULUM
 
An overview of the various scriptures in Hinduism
An overview of the various scriptures in HinduismAn overview of the various scriptures in Hinduism
An overview of the various scriptures in Hinduism
 

Featured

How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
ThinkNow
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
 

Featured (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

Heaps.pdf

  • 2. Outline  Binary Tree Variations  Binary Heap Tree  Max Heap  Min Heap  Insertion  Deletion 23/11/2015 Saba Anwar, Computer Science Department- CIIT Lahore 2
  • 3. Binary Heap 23/11/2015 Saba Anwar, Computer Science Department- CIIT Lahore 3  A binary tree which holds two properties:  Heap Order Property:  Min-Heap Property: Every node is smaller than or equal to each of its children  Max-Heap Property: Every node is larger than or equal to each of its children  Shape Property:  Tree is complete.  A tree that is full at all levels except last level, and nodes are filled from left to right  Which tree is binary heap? 35 25 15 20 27 36 35 30 25 20 41 36 35 30 25 20 41
  • 4. Finding Min 23/11/2015 Saba Anwar, Computer Science Department- CIIT Lahore 4  Finding minimum or maximum?  It will always be root node with max or min value depending upon it is min heap or max heap.  So constant time required  What about removal? 36 35 30 25 20 41 19 15 30 25 41 20
  • 5. Deletion 23/11/2015 Saba Anwar, Computer Science Department- CIIT Lahore 5  Deleting minimum?  Root node will be removed  Which node will be next root node?  It must be next minimum that is 25  Then which node will come at place of 25?  Again, the minimum in sub tree of 25  Is this heap tree any more? 36 35 30 25 20 41 36 30 35 25 41
  • 6. Deletion 23/11/2015 Saba Anwar, Computer Science Department- CIIT Lahore 6  Deleting minimum?  What if we replace root node with last inserted node?  Now the completeness property is reserved  But another problem is created, what is that? 36 35 30 25 41 36 35 30 25 20 41 36 35 30 25 41 41
  • 7. Deletion 23/11/2015 Saba Anwar, Computer Science Department- CIIT Lahore 7  We need to perform another process to maintain heap order  After replacing root node, check if it is greater than its children, swap with appropriate child.  Repeat this process till leaf or parent node becomes smaller than its children  This process is called Heapify-Down or Down Heap 36 35 30 25 41 36 35 30 41 25 36 41 30 35 25
  • 8. Heapify-Down 23/11/2015 Saba Anwar, Computer Science Department- CIIT Lahore 8  Example-2  Deletion involves following steps: 1. Replace root node with last inserted node, to maintain shape 2. Heapify-Down process, to maintain heap order 36 35 25 30 20 41 36 35 25 30 41 36 35 41 30 25
  • 9. Insertion 23/11/2015 Saba Anwar, Computer Science Department- CIIT Lahore 9  Insertion of a new node  Always insert from left to right to maintain shape property of left completeness  Let say starting from root node how to decide that we should go left or right?  Always remember where you inserted last node  But heap property is not maintained  Solution?  Repeatedly check if parent is larger than node, then swap the node with parent  Process is called Heapify-Up or Up Heap 25 25 35 30 25 35 20 30 25 35
  • 10. Insertion 23/11/2015 Saba Anwar, Computer Science Department- CIIT Lahore 10  Insertion of a new node  Always insert from left to right to maintain shape property of left completeness  How?  Always remember where you inserted last node  But heap property is not maintained  Solution?  Repeatedly check if parent is larger than node, then swap the node with parent  Process is called Heapify-Up or Up Heap 25 25 35 30 25 35 20 30 25 35
  • 11.  Insert 20 Swap with 35 Swap with 25 Heapify-Up 23/11/2015 Saba Anwar, Computer Science Department- CIIT Lahore 11  Insert 35  Insert 25  Swap with parent if parent is larger  Insert 30  Parent is already smaller 35 25 35 30 25 25 20 30 35 25 35 25 35 30 20 25 35 30 25 20
  • 12.  Insert 36  Insert 41  Insertion involves two steps: 1. Inserting node at correct position using last node, to maintain left completeness 2. Heapify-Up process, to maintain heap order Insertion 23/11/2015 Saba Anwar, Computer Science Department- CIIT Lahore 12 35 30 25 20 41 36
  • 13. Implementation 23/11/2015 Saba Anwar, Computer Science Department- CIIT Lahore 14  Using Linked Memory Allocation  Maintain two nodes:  Root  Last node  Using Array  Children of node at location k  Left -> 2K+1  Right -> 2K+2  Parent of a node located at k  (k-1)/2 (consider integer division) 0 1 2 3 4 5 6 20 25 30 35 36 41 null 35 30 25 20 41 36
  • 14. Using Array 23/11/2015 Saba Anwar, Computer Science Department- CIIT Lahore 15  Root is always 1st index  Last node’s index is = size-1  No need of functions for left, right, parent  Just do calculation  Deletion is always replacing root with last  Then Heapify-Down  Insertion is always at end of current nodes  And then Heapify-Up 35 30 25 20 41 36 0 1 2 3 4 5 6 20 25 30 35 36 41 null
  • 15. Using Linked Memory Allocation 23/11/2015 Saba Anwar, Computer Science Department- CIIT Lahore 16  Need to maintain last node?  In Deletion 1. Root is replaced with Last node 2. Last node is updated 3. And then Heapify-Down  In Insertion 1. Last node used to find correct location for new node 2. Node is inserted 3. Last node is updated 4. And then Heapify-Up 35 30 25 20 41 36 0 1 2 3 4 5 6 20 25 30 35 36 41 null
  • 16. Example 23/11/2015 Saba Anwar, Computer Science Department- CIIT Lahore 17  See the figure, it’s a max heap  Here last node is 4  If we delete 48  Which node will become last node now?  In array?  In Linked allocation? 0 1 2 3 4 5 6 48 35 40 10 16 34 4 0 1 2 3 4 5 6 40 35 34 10 16 4 null After deletion
  • 17. Example 23/11/2015 Saba Anwar, Computer Science Department- CIIT Lahore 18  Last node is 4  Insert 50  Which node will become last node now?  In array?  In Linked allocation?  Perform few more insertions and deletions  It will give you good understanding of last node 0 1 2 3 4 5 6 40 35 34 10 16 4 null 0 1 2 3 4 5 6 50 35 40 10 16 4 34 After insertion
  • 18. Deletion: Linked Implementation 24/11/2015 Saba Anwar, Computer Science Department- CIIT Lahore 19  Delete  Last is right node  Last= sibling Last Last Heapify-Down Last Last
  • 19. Deletion: Linked Implementation 24/11/2015 Saba Anwar, Computer Science Department- CIIT Lahore 20  Delete  Last is left node  go up, until root or node is right  21 is right  last= most right of sibling 17 Heapify-Down Last Last Last
  • 20. Deletion: Linked Implementation 24/11/2015 Saba Anwar, Computer Science Department- CIIT Lahore 21  Perform delete in each figure to see how last is updated Last Last Last Last
  • 21. Deletion: Linked Implementation 24/11/2015 Saba Anwar, Computer Science Department- CIIT Lahore 22 1. Replace root with last node 2. Update last node 1. Find parent of last node 2. If last is right node  last=parent.left  parent.right=null 3. Else If last is left node  Parent.left=null  Repeatedly move up in hierarchy to parent nodes of parent until you reach root node or a node that is right node  If root node  grand parent is left child  Last= most right node of root  Else //its right node  Last= most right of sibling of this node 3. Perform Heapify-Down process
  • 22. Insertion: Linked Implementation 23/11/2015 Saba Anwar, Computer Science Department- CIIT Lahore 23  Insert 35  Insert 25  Last node is itself a root node  New node will become left node  Heapify-up(last)  Now 35 is last node  Insert 30  Last node is a left node  New node will become right node  No need of Heapify-Up  Now 30 is last node 35 25 35 30 35 25 35 25 Heapify-Up Last Last Last Last
  • 23.  Insert 20  Last node is right child  Go up until you reach a node that is either left or root node  25 is root, go to left until you reach leaf node that is 35  Insert new node as left node  Now 35 is last node Insertion- Linked Implementation 23/11/2015 Saba Anwar, Computer Science Department- CIIT Lahore 24 20 30 35 25 35 30 25 20 30 35 25 Heapify-Up Last Last Last
  • 24.  Insert 36  Last node is a left node  New node will become right node  No need of Heapify-Up  Now 36 is last node  Insert 41  Last node is right child  Go up until you reach a node that is either left or root node  25 is left child, go to its sibling that is 30  Insert new node as left node  No need of Heapify-Up  Now 41 is last node  How much time it will take to find insertion location? Insertion- Linked Implementation 23/11/2015 Saba Anwar, Computer Science Department- CIIT Lahore 25 35 30 25 20 36 35 30 25 20 41 36
  • 25. Insertion: Linked Implementation 24/11/2015 Saba Anwar, Computer Science Department- CIIT Lahore 26 1. If last node is root node  new node is left child 2. If last node is left node  new node is right node of parent of last 3. Otherwise, repeatedly go to parent nodes of last until you reach a node that is either root node or a left child of its parent.  If node is root node  then simply go to its left until you reach leaf node  If node is left child  then go to its sibling node  new node is left child of this node // (sibling will be a leaf node)  last=new node //update last  Perform Heapify_Up process 35 30 25 20 41 36 Last
  • 26. Applications 23/11/2015 Saba Anwar, Computer Science Department- CIIT Lahore 27  Priority Queue  Heap data structure is mainly as priority queue, often they are used as synonyms  Highest priority is always on top.  Time complexity of binary tree depends upon height of tree which is equivalent to logN. Where N is total number of nodes.  What can be heap tree’s worst case? Data Structure FindMin Add Remove Unsorted Array O(n) O(1) O(n) Sorted Array O(1) O(n) O(1) Unsorted List O(n) O(1) O(n) Sorted List O(1) O(n) O(1) Heap O(1) O(log n) O(log n)
  • 27. Applications 23/11/2015 Saba Anwar, Computer Science Department- CIIT Lahore 28  Heapsort  Heap tree can also be used to sort a list of numbers  How?  Build the heap tree from given list  Reconstruct list by repeatedly doing the following:  Remove min and put in list until tree becomes empty  Time Complexity? O(nlogn)  Remove min?  Total number of nodes?
  • 28. Applications 23/11/2015 Saba Anwar, Computer Science Department- CIIT Lahore 29  Selection Algorithms  Finding kth minimum or maximum number from list? Depends upon structure?  Insertion? Data Structure Find Insert Unsorted List O(n) O(1) Sorted List O(1) O(n) Heap O(1) O(log n)
  • 29. HomeWork-3 23/11/2015 Saba Anwar, Computer Science Department- CIIT Lahore 30  Book Problems:  9.24  9.25  9.26