Download presentation
Presentation is loading. Please wait.
Published byLillian Tucker Modified over 9 years ago
1
CSE 12 – Basic Data Structures Cynthia Bailey Lee Some slides and figures adapted from Paul Kube’s CSE 12 CS2 in Java Peer Instruction Materials by Cynthia Lee is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License. Based on a work at http://peerinstruction4cs.org. Permissions beyond the scope of this license may be available at http://peerinstruction4cs.org.Cynthia LeeCreative Commons Attribution-NonCommercial 4.0 International Licensehttp://peerinstruction4cs.org
2
Today’s Topics 1. Heap implementation issues Heap uniqueness Heapsort in place HW suggestions 2. Back to generic binary trees In-order traversal Pre-order traversal Post-order traversal Level-order traversal (also called “breadth-first”) 2
3
Reading quiz!
4
1. A node in a binary tree may have ___ children A. 0 B. 1 C. 2 D. 3 E. Other/none of the above/more than one of the above Reading quiz!
5
2. A preorder traversal visits the current node, performs a preorder traversal of its ___ subtree and then performs a preorder traversal of the its ___ subtree. A. right, right B. left, right C. left, left D. right, left Reading quiz!
6
3. A full binary tree is a tree in which every node other than the leaves has ____ children. A. 0 B. 1 C. 2 D. 3 E. Other/none of the above/more than one of the above Reading quiz!
7
Heap uniqueness
8
TRUE OR FALSE There is only one configuration of a valid min-heap containing the elements {34, 22, 3, 9, 18} A. TRUE B. FALSE
9
Heap outcomes by insert order Create a MIN-heap by inserting the elements, one by one, in the order given below for the first letter of your last name : A-F: {3, 9, 18, 22, 34} G-L: {3, 33, 18, 9, 34} M-R: {9, 22, 18, 3, 34} S-Z: {18, 22, 3, 9, 34}
10
Heap outcomes by insert order Create a MIN-heap by inserting the elements, one by one, in the order given below for the first letter of your last name : A-F: {18, 9, 34, 3, 22} G-L: {3, 18, 22, 9, 34} M-R: {22, 9, 34, 3, 18} S-Z: {34, 3, 9, 18, 22}
11
How many distinct min-heaps are possible for the elements {3, 9, 18, 22, 34} ? A. 1 B. 2-4 C. 5-8 D. 5! (5 factorial) E. Other/none/more
12
Heapsort
13
Heapsort is super easy 1. Insert unsorted elements one at a time into a heap until all are added 2. Remove them from the heap one at a time. We will always be removing the next biggest[smallest] item from the max-heap[min-heap], so the items come out in sorted order! THAT’S IT!
14
Example: using heapsort to print an array in sorted order (note: this is not the in- place version you need for HW) public static void printSorted(String[] unsortedlist) { Heap heap = new Heap (); for (int i=0; i<unsortedlist.length; i++) { heap.add(unsortedlist[i]); } while (!heap.isEmpty()) { System.out.println(heap.remove()); }
15
Implementing heapsort Devil’s in the details
16
We can do the entire heapsort in place in one array Unlike mergesort, we don’t need a separate array for our workspace We can do it all in place in one array (the same array we were given as input)
17
Build heap by inserting elements one at a time:
18
Sort array by removing elements one at a time:
19
Build heap by inserting elements one at a time IN PLACE:
20
Sort array by removing elements one at a time IN PLACE:
21
Important tip! The in-place approach will not work if your test to see if index i is past the end of the heap is to check if heaparray[i] is null. Things will be in the array that are NOT in the heap! You need to keep track of an int size (in addition to an int capacity ) in order to check where the heap ends!
22
Binary tree traversals
23
Binary trees Recall from last time, a binary tree is any tree where each node has 0, 1, or 2 children That’s the only restriction Recall: heaps are a special case of binary trees, and they have two additional restrictions
24
Trees vs. Lists Lists have an obvious ordering 1 st element is first, 2 nd element is second, … Trees don’t More than one reasonable order
25
Pre-order traversal preorder(node) { if (node != null){ visit this node preorder(node.left) preorder(node.right) } A. D B E A F C G B. A B D E C F G C. A B C D E F G D. D E B F G C A E. Other/none/more
26
Post-order traversal postorder(node) { if (node != null){ postorder(node.left) postorder(node.right) visit this node } A. D B E A F C G B. A B D E C F G C. A B C D E F G D. D E B F G C A E. Other/none/more
27
In-order traversal inorder(node) { if (node != null){ inorder(node.left) visit this node inorder(node.right) } A. D B E A F C G B. A B D E C F G C. A B C D E F G D. D E B F G C A E. Other/none/more
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.