PIC 16: Midterm. Part 1. In this part, you should not worry about why your class has the name that it does.
|
|
- Kelly Perry
- 5 years ago
- Views:
Transcription
1 PIC 16: Midterm Assigned 10/19/2018 at noon. Code (a single.py file) due by 12:51pm on CCLE. I have provided you with a.py file which contains test code. I have also provided you with a.txt file of what my code outputs when I run this test code. In this midterm, you will create a class named SpecialTree to implement a sorting algorithm. Part 1. In this part, you should not worry about why your class has the name that it does. Questions. [ points] 1. Write a new class SpecialTree. For now, its only method should be an initializer, and the only instance variable should be an empty list - data. 2. (a) Write a magic method so that you can print the data in instances of SpecialTree quickly. (b) Write a magic method so that the built-in function len returns the number of elements in instances of SpecialTree. 3. To your SpecialTree class, add a method swap that accepts two indices i1 and i2 and swaps the corresponding entries in data. (I do not require your method swap to be able to handle bad indices from a useless user!) 1
2 Part 2. In what follows, we will think of our data as arranged in an special type of tree... We think of each value as being contained within a node (represented with a rectangle). Arrows pointing away from a node point to the node s children. Arrows pointing towards a node come from the node s parent. We call the top node, which is not the child of any other node, the root of the tree. We call each node that has no children a leaf. Three properties we ll always impose are: Each node has zero, one, or two children. Each level/row is full except for the last. There are no gaps in the last level (which is filled from left to right). This means that: The index of the parent of node i is (i-1)/2 (using int division). The indices of the children of node i are 2i+1 (left) and 2i+2 (right). An example when len(data)==6... data[0] 0 1 data[1] data[2] 2 3 data[3] data[4] 4 5 data[5] 2
3 Questions. [0 + 8 points] 1. Add a method parent that accepts an index i and returns the index of the parent of node i: if i==0: return None return (i-1)/2 Notice that if node i is the root of the tree, then parent returns None (which is correct). This code is already in the.py file I gave you (commented out). 2. Add a method child that accepts an index i and returns the index of the child of node i that contains a greater value. Some clarification is necessary since it is possible for a node to have two children, one child, or even zero children. When node i has two children, it should return the index of the left child exactly when value_left_child_contains > value_right_child_contains. When node i has one child, child should return the index of that child. When node i has no children, child should raise an IndexError. However, your code should NOT use the keyword raise. I d use try-except to make this easier. In the example below, we d have child(0)==1, child(1)==4, child(2)== In the example below, calling child(2) would raise an IndexError
4 Part 3. We demand one final property of our SpecialTrees: If p is a parent node of c, then the value of p is greater than or equal to the value of c. We call this the special property. Not all trees have the special property. For instance, does not because node 0 is the parent of node 1, but 8 is not bigger than or equal to 9. Questions. [ points] 1. Add a method push that accepts a value to be added to an instance of SpecialTree: self.data.append(value) active = len(self) - 1 while parent!= None and self.data[active] > self.data[parent]: self.swap(active, parent) active = parent This code is already in the.py file I gave you (commented out). This implements an algorithm which ensures the special property is maintained. 2. Make it an option for your SpecialTree initializer to accept any sequence/container and construct a SpecialTree out of its elements. 3. Add a method pop that returns the greatest element in the SpecialTree and removes it from the SpecialTree while maintaining the special property. Here s the algorithm: Swap the root in the SpecialTree with the last leaf (i.e. swap the first and last elements of the list). Remove the last leaf. This is what you want to return. Label the root as the active node. Compare the value of the active node to that of its greater child. (see over page...) 4
5 For example, If the value of the child is greater than that of the active node, swap the child and active node. Then go back to the beginning of this bullet point. If the value of the child is less than or equal to that of the active node or if the active node has no children (i.e. it is a leaf), stop. We swap 7 and We remove 7 and will return it later The root is the active node We swap 2 and 6. Node 1 becomes the active node. We swap 2 and 5. Node 4 becomes the active node. We stop Make your SpecialTree iterable by: copying it (by using the initializer cleverly) and popping elements one by one, until it has no elements. To receive the final point, you should accomplish this by only adding one additional method. If you cannot complete question 3, use self.data.pop() instead of self.pop(). 5
6 Solution. class SpecialTree: def init (self, container = []): self.data = [] for el in container: self.push(el) def str (self): return str(self.data) def len (self): return len(self.data) def swap(self, i1, i2): self.data[i1], self.data[i2] = self.data[i2], self.data[i1] def parent(self, i): if i==0: return None return (i-1)/2 def child(self, i): l = self.data[2*i+1] try: r = self.data[2*i+2] except IndexError: return 2*i+1 if l > r: return 2*i+1 return 2*i+2 def push(self, value): self.data.append(value) active = len(self) - 1 while parent!= None and self.data[active] > self.data[parent]: self.swap(active, parent) active = parent def pop(self): self.swap(0, len(self)-1) for_returning = self.data.pop() 6
7 active = 0 while True: try: child = self.child(active) except IndexError: return for_returning if self.data[child] > self.data[active]: self.swap(active, child) active = child return for_returning def iter (self): copy = SpecialTree(self.data) while len(copy) > 0: yield copy.pop() 7
Iterators & Generators
Iterators & Generators Sequences A sequence is something that you can: Index into Get the length of What are some examples of sequences? Sequences We ve been working with sequences all semester! Examples:
More informationFigure 1: A complete binary tree.
The Binary Heap A binary heap is a data structure that implements the abstract data type priority queue. That is, a binary heap stores a set of elements with a total order (that means that every two elements
More informationCS 331 Midterm Exam 2
CS 331 Midterm Exam 2 Friday, April 29, 2016 Please bubble your answers in on the provided answer sheet. Also be sure to write and bubble in your student ID number (without the leading A ) on the answer
More informationWhat is an algorithm?
Announcements CS 142 Stacks & Queues Program 3 has been assigned due 10/6 by 11:55pm Program details on website 2 Creating new Data Structures We ve used objects to create new data types such as Point,
More informationCS 331 Midterm Exam 1
CS 331 Midterm Exam 1 Friday, October 6 th, 2016 Please bubble your answers in on the provided answer sheet. Also be sure to write and bubble in your student ID number (without the leading A ). 1. What
More informationTrees. Tree Structure Binary Tree Tree Traversals
Trees Tree Structure Binary Tree Tree Traversals The Tree Structure Consists of nodes and edges that organize data in a hierarchical fashion. nodes store the data elements. edges connect the nodes. The
More informationMulti-way Search Trees! M-Way Search! M-Way Search Trees Representation!
Lecture 10: Multi-way Search Trees: intro to B-trees 2-3 trees 2-3-4 trees Multi-way Search Trees A node on an M-way search tree with M 1 distinct and ordered keys: k 1 < k 2 < k 3
More informationBinary Search Tree. Revised based on textbook author s notes.
Binary Search Tree Revised based on textbook author s notes. Search Trees The tree structure can be used for searching. Each node contains a search key as part of its data or payload. Nodes are organized
More informationTree traversals and binary trees
Tree traversals and binary trees Comp Sci 1575 Data Structures Valgrind Execute valgrind followed by any flags you might want, and then your typical way to launch at the command line in Linux. Assuming
More informationAlgorithms in Systems Engineering ISE 172. Lecture 5. Dr. Ted Ralphs
Algorithms in Systems Engineering ISE 172 Lecture 5 Dr. Ted Ralphs ISE 172 Lecture 5 1 References for Today s Lecture Required reading Chapter 3 ISE 172 Lecture 5 2 Delving into the Lists As we have seen
More informationCS 331 Summer 2017 Final Exam
CS 331 Summer 2017 Final Exam Instructions: This exam is closed-book, closed-notes. Calculators are not permitted. For numbered, multiple-choice questions, fill your answer in the corresponding row on
More informationCS 331 Midterm Exam 2
CS 331 Midterm Exam 2 Friday, November 4 th, 2016 Please bubble your answers in on the provided answer sheet. Also be sure to write and bubble in your student ID number (without the leading A ). 1. What
More informationOutline. An Application: A Binary Search Tree. 1 Chapter 7: Trees. favicon. CSI33 Data Structures
Outline Chapter 7: Trees 1 Chapter 7: Trees Approaching BST Making a decision We discussed the trade-offs between linked and array-based implementations of sequences (back in Section 4.7). Linked lists
More informationData Structures I: Linked Lists
Lab 4 Data Structures I: Linked Lists Lab Objective: Analyzing and manipulating data are essential skills in scientific computing. Storing, retrieving, and rearranging data take time. As a dataset grows,
More informationHeaps. Heaps Priority Queue Revisit HeapSort
Heaps Heaps Priority Queue Revisit HeapSort Heaps A heap is a complete binary tree in which the nodes are organized based on their data values. For each non- leaf node V, max- heap: the value in V is greater
More informationn 1 i = n + i = n + f(n 1)
2 Binary Search Trees Lab Objective: A tree is a linked list where each node in the list may refer to more than one other node. This structural flexibility makes trees more useful and efficient than regular
More informationAbstract Data Types Chapter 1
Abstract Data Types Chapter 1 Part Two Bags A bag is a basic container like a shopping bag that can be used to store collections. There are several variations: simple bag grab bag counting bag 2 Bag ADT
More informationStructure and Interpretation of Computer Programs
CS 61A Fall 2016 Structure and Interpretation of Computer Programs Final INSTRUCTIONS You have 3 hours to complete the exam. The exam is closed book, closed notes, closed computer, closed calculator, except
More informationProgramming II (CS300)
1 Programming II (CS300) Chapter 11: Binary Search Trees MOUNA KACEM mouna@cs.wisc.edu Fall 2018 General Overview of Data Structures 2 Introduction to trees 3 Tree: Important non-linear data structure
More informationWe will show that the height of a RB tree on n vertices is approximately 2*log n. In class I presented a simple structural proof of this claim:
We have seen that the insert operation on a RB takes an amount of time proportional to the number of the levels of the tree (since the additional operations required to do any rebalancing require constant
More informationTrees : Part 1. Section 4.1. Theory and Terminology. A Tree? A Tree? Theory and Terminology. Theory and Terminology
Trees : Part Section. () (2) Preorder, Postorder and Levelorder Traversals Definition: A tree is a connected graph with no cycles Consequences: Between any two vertices, there is exactly one unique path
More informationBinary Trees
Binary Trees 4-7-2005 Opening Discussion What did we talk about last class? Do you have any code to show? Do you have any questions about the assignment? What is a Tree? You are all familiar with what
More informationData Structures and Algorithms
Data Structures and Algorithms CS245-2008S-19 B-Trees David Galles Department of Computer Science University of San Francisco 19-0: Indexing Operations: Add an element Remove an element Find an element,
More informationMaps; Binary Search Trees
Maps; Binary Search Trees PIC 10B Friday, May 20, 2016 PIC 10B Maps; Binary Search Trees Friday, May 20, 2016 1 / 24 Overview of Lecture 1 Maps 2 Binary Search Trees 3 Questions PIC 10B Maps; Binary Search
More informationStructure and Interpretation of Computer Programs
CS 6A Fall 206 Structure and Interpretation of Computer Programs Final Solutions INSTRUCTIONS You have hours to complete the exam. The exam is closed book, closed notes, closed computer, closed calculator,
More informationAbstract Data Types. CS 234, Fall Types, Data Types Abstraction Abstract Data Types Preconditions, Postconditions ADT Examples
Abstract Data Types CS 234, Fall 2017 Types, Data Types Abstraction Abstract Data Types Preconditions, Postconditions ADT Examples Data Types Data is stored in a computer as a sequence of binary digits:
More information! Tree: set of nodes and directed edges. ! Parent: source node of directed edge. ! Child: terminal node of directed edge
Trees & Heaps Week 12 Gaddis: 20 Weiss: 21.1-3 CS 5301 Fall 2018 Jill Seaman!1 Tree: non-recursive definition! Tree: set of nodes and directed edges - root: one node is distinguished as the root - Every
More informationName CPTR246 Spring '17 (100 total points) Exam 3
Name CPTR246 Spring '17 (100 total points) Exam 3 1. Linked Lists Consider the following linked list of integers (sorted from lowest to highest) and the changes described. Make the necessary changes in
More informationBINARY HEAP cs2420 Introduction to Algorithms and Data Structures Spring 2015
BINARY HEAP cs2420 Introduction to Algorithms and Data Structures Spring 2015 1 administrivia 2 -assignment 10 is due on Thursday -midterm grades out tomorrow 3 last time 4 -a hash table is a general storage
More information6.01: Introduction to EECS I Lecture 13 May 3, 2011
6.0: Introduction to S I Lecture 3 May 3, 20 6.0: Introduction to S I Optimizing a Search Nano-Quiz Makeups Wednesday, May 4, 6-pm, 34-0. everyone can makeup/retake NQ everyone can makeup/retake two additional
More informationStructure and Flow. CS 3270 Chapter 5
Structure and Flow CS 3270 Chapter 5 Python Programs Are made up of modules One module is the main (top-level) module The first one loaded (even if it s the interpreter) Its module object has main as its
More informationWalk through previous lectures
Walk through previous lectures Tuple tuple_name = (value, value,..., value) A way of packing multiple values into a variable >>> x = 3 >>> y = -5 >>> p = (x, y, 42) >>> p (3, -5, 42) name, name,..., name
More informationBST Deletion. First, we need to find the value which is easy because we can just use the method we developed for BST_Search.
BST Deletion Deleting a value from a Binary Search Tree is a bit more complicated than inserting a value, but we will deal with the steps one at a time. First, we need to find the value which is easy because
More informationLast week. Another example. More recursive examples. How about these functions? Recursive programs. CSC148 Intro. to Computer Science
CSC48 Intro. to Computer Science Lecture 7: Recursive Functions/Structures Trees mir H. Chinaei, Summer 206 Office Hours: R 0-2 B4222 ahchinaei@cs.toronto.edu http://www.cs.toronto.edu/~ahchinaei/ Course
More informationStudent Number: Lab day:
CSC 148H1 Summer 2008 Midterm Test Duration 60 minutes Aids allowed: none Last Name: Student Number: Lab day: First Name: Lecture Section: L0101 Instructor: R. Danek Do not turn this page until you have
More informationLast week. Last week. Last week. Today. Binary Trees. CSC148 Intro. to Computer Science. Lecture 8: Binary Trees, BST
CSC1 Intro. to Computer Science Lecture : Binary Trees, BST Last week Tracing recursive programs Amir H. Chinaei, Summer 01 Office Hours: R 10-1 BA ahchinaei@cs.toronto.edu http://www.cs.toronto.edu/~ahchinaei/
More informationLecture 12 ADTs and Stacks
Lecture 12 ADTs and Stacks Modularity Divide the program into smaller parts Advantages Keeps the complexity managable Isolates errors (parts can be tested independently) Can replace parts easily Eliminates
More informationChapter 8 Long-term decision-making and search
Chapter 8 Long-term decision-making and search 6.01 Spring 2011 April 25, 2011 296 Chapter 8 Long-term decision-making and search In the lab exercises of this course, we have implemented several brains
More informationNotes slides from before lecture. CSE 21, Winter 2017, Section A00. Lecture 10 Notes. Class URL:
Notes slides from before lecture CSE 21, Winter 2017, Section A00 Lecture 10 Notes Class URL: http://vlsicad.ucsd.edu/courses/cse21-w17/ Notes slides from before lecture Notes February 13 (1) HW5 is due
More informationFINALTERM EXAMINATION Fall 2009 CS301- Data Structures Question No: 1 ( Marks: 1 ) - Please choose one The data of the problem is of 2GB and the hard
FINALTERM EXAMINATION Fall 2009 CS301- Data Structures Question No: 1 The data of the problem is of 2GB and the hard disk is of 1GB capacity, to solve this problem we should Use better data structures
More informationCS 331 Midterm Exam 2
CS 331 Midterm Exam 2 Friday, December 4 th, 2015 Please bubble your answers in on the provided answer sheet. Also be sure to write and bubble in your student ID number (without the leading A ) on the
More informationCMSC 341 Leftist Heaps
CMSC 341 Leftist Heaps Based on slides from previous iterations of this course Today s Topics Review of Min Heaps Introduction of Left-ist Heaps Merge Operation Heap Operations Review of Heaps Min Binary
More informationCS 331 DATA STRUCTURES & ALGORITHMS BINARY TREES, THE SEARCH TREE ADT BINARY SEARCH TREES, RED BLACK TREES, THE TREE TRAVERSALS, B TREES WEEK - 7
Ashish Jamuda Week 7 CS 331 DATA STRUCTURES & ALGORITHMS BINARY TREES, THE SEARCH TREE ADT BINARY SEARCH TREES, RED BLACK TREES, THE TREE TRAVERSALS, B TREES OBJECTIVES: Red Black Trees WEEK - 7 RED BLACK
More informationData Structures and Organization (p.5 Recursion. Binary Trees)
Data Structures and Organization (p.5 Recursion. Binary Trees) Yevhen Berkunskyi, Computer Science dept., NUoS eugeny.berkunsky@gmail.com http://www.berkut.mk.ua Let s start with example Triangular Numbers
More informationCS24 Week 8 Lecture 1
CS24 Week 8 Lecture 1 Kyle Dewey Overview Tree terminology Tree traversals Implementation (if time) Terminology Node The most basic component of a tree - the squares Edge The connections between nodes
More informationLECTURE 6 Python Basics Part 5
LECTURE 6 Python Basics Part 5 LAST LECTURE We just covered basic Class usage in Python. Now, we ll look at some more advanced OOP concepts and tie up loose ends. After this lecture, we ll start looking
More informationChapter 20: Binary Trees
Chapter 20: Binary Trees 20.1 Definition and Application of Binary Trees Definition and Application of Binary Trees Binary tree: a nonlinear linked list in which each node may point to 0, 1, or two other
More informationRecursion. Presentation Subtitle. Brad Miller David Ranum 1 12/19/2005. Luther College. Binary Search Trees. 1 Department of Computer Science
Presentation Subtitle Brad Miller David Ranum 1 1 Department of Computer Science Luther College 12/19/2005 Outline 1 Binary Search Trees Outline Binary Search Trees 1 Binary Search Trees BinaryTree() Create
More informationBasic Data Structures (Version 7) Name:
Prerequisite Concepts for Analysis of Algorithms Basic Data Structures (Version 7) Name: Email: Concept: mathematics notation 1. log 2 n is: Code: 21481 (A) o(log 10 n) (B) ω(log 10 n) (C) Θ(log 10 n)
More informationLECTURE 11 TREE TRAVERSALS
DATA STRUCTURES AND ALGORITHMS LECTURE 11 TREE TRAVERSALS IMRAN IHSAN ASSISTANT PROFESSOR AIR UNIVERSITY, ISLAMABAD BACKGROUND All the objects stored in an array or linked list can be accessed sequentially
More informationCS350: Data Structures Heaps and Priority Queues
Heaps and Priority Queues James Moscola Department of Engineering & Computer Science York College of Pennsylvania James Moscola Priority Queue An abstract data type of a queue that associates a priority
More informationMulti-way Search Trees. (Multi-way Search Trees) Data Structures and Programming Spring / 25
Multi-way Search Trees (Multi-way Search Trees) Data Structures and Programming Spring 2017 1 / 25 Multi-way Search Trees Each internal node of a multi-way search tree T: has at least two children contains
More informationDATA STRUCTURES AND ALGORITHMS
LECTURE 3 Babeş - Bolyai University Computer Science and Mathematics Faculty 2017-2018 In Lecture 2... Algorithm Analysis Dynamic Array Iterator Today 1 2 3 Singly Iterator An iterator is a structure that
More informationTrees Slow Insertion in an Ordered Array If you re going to be doing a lot of insertions and deletions, an ordered array is a bad choice.
Trees Slow Insertion in an Ordered Array Imagine an array in which all the elements are arranged in order; that is, an ordered array, it s quick to search such an array for a particular value, using a
More informationStructure and Interpretation of Computer Programs
CS 6A Fall 25 Structure and Interpretation of Computer Programs Midterm 2 Solutions INSTRUCTIONS You have 2 hours to complete the exam. The exam is closed book, closed notes, closed computer, closed calculator,
More informationRed-Black trees are usually described as obeying the following rules :
Red-Black Trees As we have seen, the ideal Binary Search Tree has height approximately equal to log n, where n is the number of values stored in the tree. Such a BST guarantees that the maximum time for
More informationComputational Optimization ISE 407. Lecture 16. Dr. Ted Ralphs
Computational Optimization ISE 407 Lecture 16 Dr. Ted Ralphs ISE 407 Lecture 16 1 References for Today s Lecture Required reading Sections 6.5-6.7 References CLRS Chapter 22 R. Sedgewick, Algorithms in
More informationCS350: Data Structures Red-Black Trees
Red-Black Trees James Moscola Department of Engineering & Computer Science York College of Pennsylvania James Moscola Red-Black Tree An alternative to AVL trees Insertion can be done in a bottom-up or
More informationHeap: A binary heap is a complete binary tree in which each, node other than root is smaller than its parent. Heap example: Fig 1. NPTEL IIT Guwahati
Heap sort is an efficient sorting algorithm with average and worst case time complexities are in O(n log n). Heap sort does not use any extra array, like merge sort. This method is based on a data structure
More informationDo not turn this page until you have received the signal to start. In the meantime, please read the instructions below carefully.
CSC 148 H1 / L0101 Term Test # 2 13 March 2013 Duration: Aids Allowed: 50 minutes None Student Number: Last (Family) Name(s): First (Given) Name(s): Do not turn this page until you have received the signal
More informationRecitation 9. Prelim Review
Recitation 9 Prelim Review 1 Heaps 2 Review: Binary heap min heap 1 2 99 4 3 PriorityQueue Maintains max or min of collection (no duplicates) Follows heap order invariant at every level Always balanced!
More informationData Abstractions. National Chiao Tung University Chun-Jen Tsai 05/23/2012
Data Abstractions National Chiao Tung University Chun-Jen Tsai 05/23/2012 Concept of Data Structures How do we store some conceptual structure in a linear memory? For example, an organization chart: 2/32
More informationDiscussion 2C Notes (Week 9, March 4) TA: Brian Choi Section Webpage:
Discussion 2C Notes (Week 9, March 4) TA: Brian Choi (schoi@cs.ucla.edu) Section Webpage: http://www.cs.ucla.edu/~schoi/cs32 Heaps A heap is a tree with special properties. In this class we will only consider
More informationData structure and algorithm in Python
Data structure and algorithm in Python Array-Based Sequences Xiaoping Zhang School of Mathematics and Statistics, Wuhan University Table of contents 1. Python s Sequence Types 2. Low-Level s Arrays 3.
More informationChapter 10: Trees. A tree is a connected simple undirected graph with no simple circuits.
Chapter 10: Trees A tree is a connected simple undirected graph with no simple circuits. Properties: o There is a unique simple path between any 2 of its vertices. o No loops. o No multiple edges. Example
More informationBalanced Binary Search Trees. Victor Gao
Balanced Binary Search Trees Victor Gao OUTLINE Binary Heap Revisited BST Revisited Balanced Binary Search Trees Rotation Treap Splay Tree BINARY HEAP: REVIEW A binary heap is a complete binary tree such
More informationSummer Final Exam Review Session August 5, 2009
15-111 Summer 2 2009 Final Exam Review Session August 5, 2009 Exam Notes The exam is from 10:30 to 1:30 PM in Wean Hall 5419A. The exam will be primarily conceptual. The major emphasis is on understanding
More informationCS 331 Fall 2017 Midterm Exam 2
CS 331 Fall 2017 Midterm Exam 2 Instructions: This exam is closed-book, closed-notes. Calculators are not permitted. For numbered, multiple-choice questions, fill your answer in the corresponding row on
More informationCollection of priority-job pairs; priorities are comparable.
Priority Queue Collection of priority-job pairs; priorities are comparable. insert(p, j) max(): read(-only) job of max priority extract-max(): read and remove job of max priority increase-priority(i, p
More informationMEMOIZATION, RECURSIVE DATA, AND SETS
MEMOIZATION, RECURSIVE DATA, AND SETS 4b COMPUTER SCIENCE 61A July 18, 2013 1 Memoization Later in this class, you ll learn about orders of growth and how to analyze exactly how efficient (or inefficient)
More informationGraduate Algorithms CS F-07 Red/Black Trees
Graduate Algorithms CS673-2016F-07 Red/lack Trees David Galles Department of Computer Science University of San Francisco 07-0: inary Search Trees inary Trees For each node n, (value stored at node n)
More informationFigure 1. A breadth-first traversal.
4.3 Tree Traversals Stepping, or iterating, through the entries of a linearly ordered list has only two obvious orders: from front to back or from back to front. There is no obvious traversal of a general
More information! Tree: set of nodes and directed edges. ! Parent: source node of directed edge. ! Child: terminal node of directed edge
Trees (& Heaps) Week 12 Gaddis: 20 Weiss: 21.1-3 CS 5301 Spring 2015 Jill Seaman 1 Tree: non-recursive definition! Tree: set of nodes and directed edges - root: one node is distinguished as the root -
More informationCS302 Midterm Exam Answers & Grading James S. Plank September 30, 2010
CS302 Midterm Exam Answers & Grading James S. Plank September 30, 2010 Question 1 Part 1, Program A: This program reads integers on standard input and stops when it encounters EOF or a non-integer. It
More informationCS-141 Final Exam Review May 16, 2015 Presented by the RIT Computer Science Community
CS-141 Final Exam Review May 16, 2015 Presented by the RIT Computer Science Community http://csc.cs.rit.edu Python Basics 1. Although most in the industry will be reasonably forgiving when it comes to
More informationThus, it is reasonable to compare binary search trees and binary heaps as is shown in Table 1.
7.2 Binary Min-Heaps A heap is a tree-based structure, but it doesn t use the binary-search differentiation between the left and right sub-trees to create a linear ordering. Instead, a binary heap only
More informationSimulation Algorithms
Simulation Algorithms Simulations are immensely useful, both for profit (design validation) and fun (games such as Angry Birds). Simulations can be optimized with the aid of data structures such as heap-backed
More informationCIS265/ Trees Red-Black Trees. Some of the following material is from:
CIS265/506 2-3-4 Trees Red-Black Trees Some of the following material is from: Data Structures for Java William H. Ford William R. Topp ISBN 0-13-047724-9 Chapter 27 Balanced Search Trees Bret Ford 2005,
More informationCS-141 Final Exam Review December 16, 2015 Presented by the RIT Computer Science Community
CS-141 Final Exam Review December 16, 2015 Presented by the RIT Computer Science Community http://csc.cs.rit.edu Python Basics 1. Although most in the industry will be reasonably forgiving when it comes
More informationCSI33 Data Structures
Outline Department of Mathematics and Computer Science Bronx Community College November 13, 2017 Outline Outline 1 C++ Supplement.1: Trees Outline C++ Supplement.1: Trees 1 C++ Supplement.1: Trees Uses
More informationLargest Online Community of VU Students
WWW.VUPages.com http://forum.vupages.com WWW.VUTUBE.EDU.PK Largest Online Community of VU Students MIDTERM EXAMINATION SEMESTER FALL 2003 CS301-DATA STRUCTURE Total Marks:86 Duration: 60min Instructions
More informationTrees (Part 1, Theoretical) CSE 2320 Algorithms and Data Structures University of Texas at Arlington
Trees (Part 1, Theoretical) CSE 2320 Algorithms and Data Structures University of Texas at Arlington 1 Trees Trees are a natural data structure for representing specific data. Family trees. Organizational
More informationGIS 4653/5653: Spatial Programming and GIS. More Python: Statements, Types, Functions, Modules, Classes
GIS 4653/5653: Spatial Programming and GIS More Python: Statements, Types, Functions, Modules, Classes Statement Syntax The if-elif-else statement Indentation and and colons are important Parentheses and
More informationCSE 2123 Recursion. Jeremy Morris
CSE 2123 Recursion Jeremy Morris 1 Past Few Weeks For the past few weeks we have been focusing on data structures Classes & Object-oriented programming Collections Lists, Sets, Maps, etc. Now we turn our
More informationCS-141 Exam 2 Review November 10, 2017 Presented by the RIT Computer Science Community
CS-141 Exam 2 Review November 10, 2017 Presented by the RIT Computer Science Community http://csc.cs.rit.edu Linked Lists 1. You are given the linked sequence: 1 2 3. You may assume that each node has
More information6.01: Introduction to EECS 1 Week 13 December 1, 2009
6.0: Introduction to Week ecember, 009 6.0: Introduction to I Optimal earch lgorithms The story so far earch domain characterized by successors function, legal actions, start state, goal function. earch
More informationMaintain binary search tree property nodes to the left are less than the current node, nodes to the right are greater
CS61B, Summer 2002 Lecture #8 Barath Raghavan UC Berkeley Topics: Binary Search Trees, Priority queues 1 Binary search trees (BSTs) Represented as ordinary binary trees Maintain binary search tree property
More informationAlgorithms in Systems Engineering ISE 172. Lecture 16. Dr. Ted Ralphs
Algorithms in Systems Engineering ISE 172 Lecture 16 Dr. Ted Ralphs ISE 172 Lecture 16 1 References for Today s Lecture Required reading Sections 6.5-6.7 References CLRS Chapter 22 R. Sedgewick, Algorithms
More informationCS558 Programming Languages
CS558 Programming Languages Winter 2017 Lecture 6a Andrew Tolmach Portland State University 1994-2017 Iteration into Recursion Any iteration can be written as a recursion, e.g. while (c) {e Scala is equivalent
More informationBrute Force: Selection Sort
Brute Force: Intro Brute force means straightforward approach Usually based directly on problem s specs Force refers to computational power Usually not as efficient as elegant solutions Advantages: Applicable
More informationCOS 226 Midterm Exam, Spring 2009
NAME: login ID: precept: COS 226 Midterm Exam, Spring 2009 This test is 10 questions, weighted as indicated. The exam is closed book, except that you are allowed to use a one page cheatsheet. No calculators
More informationData Structure. IBPS SO (IT- Officer) Exam 2017
Data Structure IBPS SO (IT- Officer) Exam 2017 Data Structure: In computer science, a data structure is a way of storing and organizing data in a computer s memory so that it can be used efficiently. Data
More informationCSCA48 Term Test 1 Seminar
CSCA48 Term Test 1 Seminar Brian Chen and Joshua Concon January 30, 2017 Implementation class LLNode ( object ): A Node in a singly - linked list def init (self, data, link = None ): ( LLNode, object )
More informationCS F-11 B-Trees 1
CS673-2016F-11 B-Trees 1 11-0: Binary Search Trees Binary Tree data structure All values in left subtree< value stored in root All values in the right subtree>value stored in root 11-1: Generalizing BSTs
More informationUNIVERSITY OF TORONTO Faculty of Arts and Science. Midterm 1 CSC148H1F L0201 (Liu)
UNIVERSITY OF TORONTO Faculty of Arts and Science Midterm 1 CSC148H1F L0201 (Liu) October 21, 2016 (50 min.) Examination Aids: Provided aid sheet (back page, detachable!) Name: Student Number: Please read
More informationLecture 18 Restoring Invariants
Lecture 18 Restoring Invariants 15-122: Principles of Imperative Computation (Spring 2018) Frank Pfenning In this lecture we will implement heaps and operations on them. The theme of this lecture is reasoning
More informationData Structures. Outline. Introduction Linked Lists Stacks Queues Trees Deitel & Associates, Inc. All rights reserved.
Data Structures Outline Introduction Linked Lists Stacks Queues Trees Introduction dynamic data structures - grow and shrink during execution Linked lists - insertions and removals made anywhere Stacks
More informationECE 242 Data Structures and Algorithms. Heaps I. Lecture 22. Prof. Eric Polizzi
ECE 242 Data Structures and Algorithms http://www.ecs.umass.edu/~polizzi/teaching/ece242/ Heaps I Lecture 22 Prof. Eric Polizzi Motivations Review of priority queue Input F E D B A Output Input Data structure
More information(b) If a heap has n elements, what s the height of the tree?
CISC 5835 Algorithms for Big Data Fall, 2018 Homework Assignment #4 1 Answer the following questions about binary tree and heap: (a) For a complete binary tree of height 4 (we consider a tree with just
More informationCSI33 Data Structures
Outline Department of Mathematics and Computer Science Bronx Community College October 19, 2016 Outline Outline 1 Chapter 7: Trees Outline Chapter 7: Trees 1 Chapter 7: Trees Uses Of Trees Chapter 7: Trees
More information