Final Exam Solutions PIC 10B, Spring 2016
|
|
- Eustace Smith
- 6 years ago
- Views:
Transcription
1 Final Exam Solutions PIC 10B, Spring 2016
2 Problem 1. (10 pts) Consider the Fraction class, whose partial declaration was given by 1 class Fraction { 2 public : 3 Fraction ( int num, int den ); int num ; // numerator of the Fraction 6 int den ; // denominator of the Fraction 7 } Use operator overloading to declare and define the operator < so that the following code will compile and run: 1 Fraction a, b; if(a < b) { 4 std :: cout << " a is smaller " << std :: endl ; 5 } 1 bool operator <( const Fraction & lhs, const Fraction & rhs ) { 2 return ( lhs. num * rhs. den < rhs. num * lhs. den ); 3 }
3 Problem 2. (10 pts) You are writing software for a car dealership and you need to represent the various parts of the business in your code. In particular, the car dealership deals with the following objects, each of which will be represented by a class: Vehicle, VehiclePart, SportsCar, RacingTire, Truck, Car, Tire, SteeringWheel (a) Draw an inheritance diagram that shows the relationships between the classes listed above. (4 pts) Vehicle VehiclePart Car Truck SteeringWheel Tire SportsCar RacingTire
4 (b) The class Vehicle has a member function void test drive(), which allows potential buyers to take the vehicle for a test drive. For a SportsCar, the buyer can reserve time on a test track. Use polymorphism to declare the the function test drive() in the Car class so that the code 1 Car * ferrari = new SportsCar (); 2 ferrari -> test_drive (); calls the SportsCar version of test drive() rather than the Car version. (2 pts) 1 virtual void test_ drive (); Declare the class SportsCar as derived class from Car, and override the test drive() function. The overridden test drive() function should (1) call the base class (Car) version of test drive(), then print the message "Reserving the test track for your sports car.". (4 pts) 1 class SportsCar : public Car { 2 public : 3 virtual void test_ drive () { 4 Car :: test_drive (); 5 std :: cout << " Reserving the test track for your sports car." << std :: endl ; 6 } 7 };
5 Problem 3. (10 pts) You are given a file data.dat which contains entries consisting of names and ages. For example, the contents of data.dat could be Eve 24 Bob 27 Alice 22 Dave 25 You may assume that each line contains one name followed by one or more whitespace characters followed by a positive integer. The first letter of each name is capitalized, and the names are unique. (a) Write a piece of code that reads data.dat and stores the contents to a std::map where the keys are the names, and the values are the ages. (5 pts) 1 ifstream is; 2 is. open (" data. dat "); 3 4 std :: map < std :: string, int > age_map ; 5 std :: string name ; 6 int age ; 7 8 while (is) { 9 is >> name >> age ; 10 if(is) { 11 age_map [ name ] = age ; 12 } 13 }
6 (b) Write a piece of code that prints the contents of the std::map created in part (a) to std::cout such that (1) the names are in alphabetical order and (2) all the ages are aligned in a second column. For example after reading data.dat as on the previous page, your program should print Alice 22 Bob 27 Dave 25 Eve 24 You may assume that no name contains more than 10 characters. (5 pts) 1 std :: map < std :: string, int >:: iterator it = age_map. begin (); 2 3 while (it!= age_map. end ()) { 4 std :: cout << std :: setw (10) << (* it ). first << (* it ). second << std :: endl ; 5 ++ it; 6 }
7 Problem 4. (10 pts) Consider the definition of the Dragon class: 1 class Dragon { 2 public : 3 Dragon () { 4 std :: cout << " You made a dragon!" << std :: endl ; 5 } 6 7 Dragon () { 8 std :: cout << " You slayed a dragon!" << std :: endl ; 9 } 10 }; (a) What is the output of the following code? (7 pts) 1 void make_ dragons () { 2 Dragon first ; 3 Dragon * second = new Dragon (); 4 } 5 6 int main () { 7 make_ dragons (); 8 return 0; 9 } You made a dragon! You made a dragon! You slayed a dragon! (b) What is the error with the function void make dragons()? (3 pts) In line 3, make dragons() creates a Dragon on the heap. However, the function does not return a pointer to the new Dragon, so it cannot be deleted. Thus, this function contains a memory leak.
8 Problem 5. (10 pts) Consider an std::vector<int> v of size n which is known to contain only values 1 through n (values may appear more than once in v, and some values may not appear at all). (a) Write a function void print missing values(std::vector<int>& v) which prints the values 1 through n which do not appear in v using the following procedure: for each i = 1, 2,..., n, see if v contains i using linear search. If i is found, do nothing; otherwise print i. (4 pts) 1 void print_missing_values ( std :: vector <int >& v) { 2 int n = v. size (); 3 for ( int i = 1; i <= n; ++i) { 4 5 bool found = false ; 6 7 for ( size_t j = 0; j < n; ++j) { 8 if(v[j] == i) { 9 found = true ; 10 break ; 11 } 12 } if (! found ) { 15 std :: cout << i << std :: endl ; 16 } 17 } 18 }
9 (b) Use Big O notation to describe the runtime of print missing values implemented as described in part (a). (2 pts) The runtime of the function is O(n 2 ). The inner for loop requires n iterations in the worst case, and each iteration runs in time O(1). Thus, the inner loop runs in time O(n). The outer for loop also requires n iterations. Since each iteration runs in time O(n), the outer loop runs in time O(n 2 ). (c) Describe (without writing any code) how you could improve the runtime of print missing values to O(n log n). (2 pts) Using merge sort, the array v can be sorted in time O(n log n). After the vector is sorted, searching for a value 1 through n can be accomplished in time O(log n) using binary search. Thus, searching for all values (and printing the missing ones) can be done in time n O(log n) = O(n log n) (after the vector is sorted). Thus the total runtime of this procedure (sorting then binary search) can be accomplished in time O(n log n). (d) Is it possible to implement print missing values in time O(n)? How or why not? (2 pts) It is possible! Consider the following procedure: make a vector of bools of size n and initialize all values to false: 1 std :: vector <bool > contains (n, false ); The interpretation is that contains[i-1] is true if i is contained in v. We can use the following loop to correctly fill out the values of contains: 1 for ( size_t i = 0; i < n; ++i) { 2 contains [v[i] - 1] = true ; 3 } We can then print the missing values using: 1 for ( size_t i = 0; i < n; ++i) { 2 if (! contains [i]) 3 std :: cout << i + 1 << std :: endl ; 4 } Each of the preceding loops runs in time O(n), so the total running time is O(n).
10 Problem 6. (10 pts) Consider an std::vector<int> v. (a) Assuming that v is sorted (smallest to largest), define a function 1 size_t find ( std :: vector <int >& v, int val, size_t min, size_t max ); which employs binary search to return the index of val if val is contained in v between indices min and max. The function find should return -1 if val is not found. The function find may be either defined recursively or iteratively. (8 pts) Here is a recursive solution. Note that we assume that max is one larger than the maximum index to be considered so that initially, max = v.size(): 1 size_t find ( std :: vector <int >& v, int val, size_t min, size_t max ) { 2 if( max - min == 1) { 3 if(v[ min ] == val ) 4 return min ; 5 6 return -1; 7 } 8 9 size_ t mid = ( min + max ) / 2; if(val < v[ mid ]) 12 return find (v, val, min, mid ); return find (v, val, mid, max ); 15 } (b) Use Big O notation to describe the run time of find when v contains n (sorted) entries. You do not need to justify your answer. (2 pts) The runtime of binary search is O(log n).
11 Problem 7. (10 pts) Consider the (simplified) TreeNode class below. 1 class TreeNode { 2 public : 3 TreeNode ( int val ); 4 5 TreeNode * parent ; 6 TreeNode * left_ child ; 7 TreeNode * right_ child ; 8 int value ; 9 }; Implement a function 1 TreeNode * insert ( TreeNode * root, int val ); which searches a Binary Search Tree (BST) for val. If val is found in the BST, insert returns a pointer to the TreeNode containing val. If val is not found, insert should create a new TreeNode with value equal to val, and insert it into the BST so as to maintain the BST properties. You may assume that the TreeNode* root passed to insert is not nullptr. 1 TreeNode * insert ( TreeNode * root, int val ) { 2 TreeNode * cur = root ; 3 TreeNode * prev ; 4 5 while ( cur!= nullptr ) { 6 if(val == cur -> value ) 7 return cur ; 8 9 prev = cur ; if(val < cur -> value ) 12 cur = cur -> left_child ; else 15 cur = cur -> right_child ; 16 } cur = new TreeNode ( val ); 19 cur -> parent = prev ; if(val < prev -> value ) 22 prev -> left_child = cur ; else 25 prev -> right_child = cur ; return cur ; 28 }
12 Problem 8. (10 pts) (a) Starting from an empty Binary Search Tree (BST), draw the BST after inserting in order 3, 1, 8, 5, 4, 7, 6, 9, 2. (4 pts)
13 (b) For the BST you created in part (a), write the output of printing the contents of the BST during an in-order traversal. (2 pts) 1, 2, 3, 4, 5, 6, 7, 8, 9 (c) For the BST you created in part (a), write the output of printing the contents of the BST during an pre-order traversal. (2 pts) 3, 1, 2, 8, 5, 4, 7, 6, 9 (d) For the BST you created in part (a), write the output of printing the contents of the BST during an post-order traversal. (2 pts) 2, 1, 4, 6, 7, 5, 9, 8, 3
14 Problem 9. (10 pts) Consider the function void puzzle(int n) defined by 1 void puzzle ( unsigned int n) { 2 if(n == 1) { 3 std :: cout << "1" << std :: endl ; 4 return ; 5 } 6 7 std :: cout << n << ", "; 8 9 if(n % 2 == 0) { 10 puzzle (n /2); 11 } else { 14 puzzle (3 * n + 1); 15 } 16 } (a) Write the output of puzzle for the following inputs (8 pts): 2, 1 puzzle(2): puzzle(3): 3, 10, 5, 16, 8, 4, 2, 1 puzzle(7): 7, 22, 11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1 puzzle(21): 21, 64, 32, 16, 8, 4, 2, 1 (b) Which best describes the run-time of puzzle(n) when n = 2 k? (circle one) (2 pts) 1. O(1) 2. O(log k) 3. O(k) 4. O(k 2 ) 5. O(2 k ) Fun fact: it is unknown whether the function puzzle(int n) eventually stops for all positive integers n! Look up Collatz conjecture if you are interested to learn more!
15 Problem 10. (10 pts) Arithmetic expressions involving integers and the operations + and * can be represented using a binary tree as follows. Each internal node (i.e., a node which is not a leaf) stores a single operator, while each leaf stores a single value. For example the tree * encodes the expression (1 + 2) * 3. A binary tree constructed in this way is known as an expression tree. To evaluate an expression tree, start at the root, and evaluate the left and right subtrees recursively. Apply the operator at the root to the values returned from the left and right children, and return the new value. Evaluation of a leaf simply returns its value. Consider the class ExpTreeNode defined below: 1 class ExpTreeNode { 2 public : 3 ExpTreeNode (); 4 virtual int evaluate () { return 0;} 5 6 ExpTreeNode * parent ; 7 ExpTreeNode * left_ child ; 8 ExpTreeNode * right_ child ; 9 }; (a) Define and implement a class derived from ExpTreeNode called ValueNode which additionally stores an int value. For ValueNode, redefine the evaluate() function to return the node s value. (2 pts) 1 class ValueNode : public ExpTreeNode { 2 public : 3 int value ; 4 5 int evaluate () { 6 return value ; 7 } 8 };
16 (b) Define and implement a class derived from ExpTreeNode called OperatorNode which stores a char op, the operator associated with the node (+ or *). Redefine the evaluate() function for an OperatorNode so that the node evaluates its left and right children, applies the operator specified by op, and returns the result. (4 pts) 1 class OperatorNode : public ExpTreeNode { 2 public : 3 char op; 4 5 int evaluate () { 6 int l_ value = left_ child - > evaluate (); 7 int r_ value = right_ child - > evaluate (); 8 9 if(ch == + ) 10 return l_ value + r_ value ; else if (ch == * ) 13 return l_ value * r_ value ; // This code should never get evaluated return 0; 17 } 18 };
17 (c) What is the result of evaluating the expression tree below? (2 pts) * (The tree above encodes the expression (2 + 4) * (1 + (3 + 5)).) (d) Write the contents of the tree from part (c) using a post-order traversal. Evaluate the resulting expression as an expression in postfix (reverse Polish) notation. (2 pts) The contents of the tree in post-order are * Evaluating this expression as a postfix expression gives the result 54. Note this is the same result as part (c)! (e) Do you recognize the result of an in-order traversal of the expression tree from (c)? It may be helpful if you include an open parenthesis before processing left children and a closing parenthesis after processing right children... (0 pts) Writing the contents of the tree using an in-order traversal with parentheses gives (2 + 4) * (1 + (3 + 5)) Note that the value of this expression is also 54!
Final Exam. Name: Student ID: Section: Signature:
Final Exam PIC 10B, Spring 2016 Name: Student ID: Section: Discussion 3A (2:00 2:50 with Kelly) Discussion 3B (3:00 3:50 with Andre) I attest that the work presented in this exam is my own. I have not
More informationTree Travsersals and BST Iterators
Tree Travsersals and BST Iterators PIC 10B May 25, 2016 PIC 10B Tree Travsersals and BST Iterators May 25, 2016 1 / 17 Overview of Lecture 1 Sorting a BST 2 In-Order Travsersal 3 Pre-Order Traversal 4
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 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 informationBinary Trees and Binary Search Trees
Binary Trees and Binary Search Trees Learning Goals After this unit, you should be able to... Determine if a given tree is an instance of a particular type (e.g. binary, and later heap, etc.) Describe
More informationBinary Trees, Binary Search Trees
Binary Trees, Binary Search Trees Trees Linear access time of linked lists is prohibitive Does there exist any simple data structure for which the running time of most operations (search, insert, delete)
More informationFinal exam. Final exam will be 12 problems, drop any 2. Cumulative up to and including week 14 (emphasis on weeks 9-14: classes & pointers)
Review Final exam Final exam will be 12 problems, drop any 2 Cumulative up to and including week 14 (emphasis on weeks 9-14: classes & pointers) 2 hours exam time, so 12 min per problem (midterm 2 had
More informationBinary Search Trees Part Two
Binary Search Trees Part Two Recap from Last Time Binary Search Trees A binary search tree (or BST) is a data structure often used to implement maps and sets. The tree consists of a number of nodes, each
More information8. Binary Search Tree
8 Binary Search Tree Searching Basic Search Sequential Search : Unordered Lists Binary Search : Ordered Lists Tree Search Binary Search Tree Balanced Search Trees (Skipped) Sequential Search int Seq-Search
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 informationCSCE 2014 Final Exam Spring Version A
CSCE 2014 Final Exam Spring 2017 Version A Student Name: Student UAID: Instructions: This is a two-hour exam. Students are allowed one 8.5 by 11 page of study notes. Calculators, cell phones and computers
More informationTree: non-recursive definition. Trees, Binary Search Trees, and Heaps. Tree: recursive definition. Tree: example.
Trees, Binary Search Trees, and Heaps CS 5301 Fall 2013 Jill Seaman Tree: non-recursive definition Tree: set of nodes and directed edges - root: one node is distinguished as the root - Every node (except
More informationPart I: Short Answer (12 questions, 65 points total)
CSE 143 Sp01 Final Exam Sample Solution page 1 of 14 Part I: Short Answer (12 questions, 65 points total) Answer all of the following questions. READ EACH QUESTION CAREFULLY. Answer each question in the
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 informationSolution to CSE 250 Final Exam
Solution to CSE 250 Final Exam Fall 2013 Time: 3 hours. December 13, 2013 Total points: 100 14 pages Please use the space provided for each question, and the back of the page if you need to. Please do
More informationCMSC 341 Lecture 10 Binary Search Trees
CMSC 341 Lecture 10 Binary Search Trees John Park Based on slides from previous iterations of this course Review: Tree Traversals 2 Traversal Preorder, Inorder, Postorder H X M A K B E N Y L G W UMBC CMSC
More informationCSE 332 Autumn 2013: Midterm Exam (closed book, closed notes, no calculators)
Name: Email address: Quiz Section: CSE 332 Autumn 2013: Midterm Exam (closed book, closed notes, no calculators) Instructions: Read the directions for each question carefully before answering. We will
More informationCSE 250 Final Exam. Fall 2013 Time: 3 hours. Dec 11, No electronic devices of any kind. You can open your textbook and notes
CSE 250 Final Exam Fall 2013 Time: 3 hours. Dec 11, 2013 Total points: 100 14 pages Please use the space provided for each question, and the back of the page if you need to. Please do not use any extra
More informationCSCI 102L - Data Structures Midterm Exam #2 Spring 2011
CSCI 102L - Data Structures Midterm Exam #2 Spring 2011 (12:30pm - 1:50pm, Thursday, March 24) Instructor: Bill Cheng ( This exam is closed book, closed notes, closed everything. No cheat sheet allowed.
More informationLec 17 April 8. Topics: binary Trees expression trees. (Chapter 5 of text)
Lec 17 April 8 Topics: binary Trees expression trees Binary Search Trees (Chapter 5 of text) Trees Linear access time of linked lists is prohibitive Heap can t support search in O(log N) time. (takes O(N)
More informationCSE030 Fall 2012 Final Exam Friday, December 14, PM
CSE030 Fall 2012 Final Exam Friday, December 14, 2012 3-6PM Write your name here and at the top of each page! Name: Select your lab session: Tuesdays Thursdays Paper. If you have any questions or need
More informationExam 1 Practice CSE 232 Summer 2018 (1) DO NOT OPEN YOUR EXAM BOOKLET UNTIL YOU HAVE BEEN TOLD TO BEGIN.
Name: Section: INSTRUCTIONS: (1) DO NOT OPEN YOUR EXAM BOOKLET UNTIL YOU HAVE BEEN TOLD TO BEGIN. (2) The total for the exam is 100 points (3) There are 8 pages with 32 problem; 15 multiple-choice, 15
More informationTrees. CptS 223 Advanced Data Structures. Larry Holder School of Electrical Engineering and Computer Science Washington State University
Trees CptS 223 Advanced Data Structures Larry Holder School of Electrical Engineering and Computer Science Washington State University 1 Overview Tree data structure Binary search trees Support O(log 2
More informationSection 1: True / False (2 points each, 30 pts total)
Section 1: True / False (2 points each, 30 pts total) Circle the word TRUE or the word FALSE. If neither is circled, both are circled, or it impossible to tell which is circled, your answer will be considered
More informationBinary Tree. Preview. Binary Tree. Binary Tree. Binary Search Tree 10/2/2017. Binary Tree
0/2/ Preview Binary Tree Tree Binary Tree Property functions In-order walk Pre-order walk Post-order walk Search Tree Insert an element to the Tree Delete an element form the Tree A binary tree is a tree
More informationTREES. Trees - Introduction
TREES Chapter 6 Trees - Introduction All previous data organizations we've studied are linear each element can have only one predecessor and successor Accessing all elements in a linear sequence is O(n)
More informationTest #2. Login: 2 PROBLEM 1 : (Balance (6points)) Insert the following elements into an AVL tree. Make sure you show the tree before and after each ro
DUKE UNIVERSITY Department of Computer Science CPS 100 Fall 2003 J. Forbes Test #2 Name: Login: Honor code acknowledgment (signature) Name Problem 1 Problem 2 Problem 3 Problem 4 Problem 5 Problem 6 Problem
More information7.1 Introduction. A (free) tree T is A simple graph such that for every pair of vertices v and w there is a unique path from v to w
Chapter 7 Trees 7.1 Introduction A (free) tree T is A simple graph such that for every pair of vertices v and w there is a unique path from v to w Tree Terminology Parent Ancestor Child Descendant Siblings
More informationLecture 2. Binary Trees & Implementations. Yusuf Pisan
CSS 343 Data Structures, Algorithms, and Discrete Math II Lecture 2 Binary Trees & Implementations Yusuf Pisan Overview 1. Huffman Coding and Arithmetic Expressions 2. 342 Topics a. Pointers & References
More informationCSCI-1200 Data Structures Test 3 Practice Problem Solutions
1 Short Answer [ /21] CSCI-1200 Data Structures Test 3 Practice Problem Solutions 1.1 TreeNode Parent Pointers [ /5] In our initial version of the ds set class, the TreeNode object had 3 member variables:
More information- 1 - Handout #22S May 24, 2013 Practice Second Midterm Exam Solutions. CS106B Spring 2013
CS106B Spring 2013 Handout #22S May 24, 2013 Practice Second Midterm Exam Solutions Based on handouts by Eric Roberts and Jerry Cain Problem One: Reversing a Queue One way to reverse the queue is to keep
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 informationSection 1: True / False (1 point each, 15 pts total)
Section : True / False ( point each, pts total) Circle the word TRUE or the word FALSE. If neither is circled, both are circled, or it impossible to tell which is circled, your answer will be considered
More informationCS 106X Sample Final Exam #2
CS 106X Sample Final Exam #2 This sample exam is intended to demonstrate an example of some of the kinds of problems that will be asked on the actual final exam. We do not guarantee that the number of
More informationCSCI-1200 Data Structures Spring 2018 Lecture 7 Order Notation & Basic Recursion
CSCI-1200 Data Structures Spring 2018 Lecture 7 Order Notation & Basic Recursion Review from Lectures 5 & 6 Arrays and pointers, Pointer arithmetic and dereferencing, Types of memory ( automatic, static,
More informationFriday Four Square! 4:15PM, Outside Gates
Binary Search Trees Friday Four Square! 4:15PM, Outside Gates Implementing Set On Monday and Wednesday, we saw how to implement the Map and Lexicon, respectively. Let's now turn our attention to the Set.
More information106B Final Review Session. Slides by Sierra Kaplan-Nelson and Kensen Shi Livestream managed by Jeffrey Barratt
106B Final Review Session Slides by Sierra Kaplan-Nelson and Kensen Shi Livestream managed by Jeffrey Barratt Topics to Cover Sorting Searching Heaps and Trees Graphs (with Recursive Backtracking) Inheritance
More informationBinary Trees. Examples:
Binary Trees A tree is a data structure that is made of nodes and pointers, much like a linked list. The difference between them lies in how they are organized: In a linked list each node is connected
More informationAn Introduction to Trees
An Introduction to Trees Alice E. Fischer Spring 2017 Alice E. Fischer An Introduction to Trees... 1/34 Spring 2017 1 / 34 Outline 1 Trees the Abstraction Definitions 2 Expression Trees 3 Binary Search
More informationCSE100. Advanced Data Structures. Lecture 12. (Based on Paul Kube course materials)
CSE100 Advanced Data Structures Lecture 12 (Based on Paul Kube course materials) CSE 100 Coding and decoding with a Huffman coding tree Huffman coding tree implementation issues Priority queues and priority
More informationCOSC 2007 Data Structures II Final Exam. Part 1: multiple choice (1 mark each, total 30 marks, circle the correct answer)
COSC 2007 Data Structures II Final Exam Thursday, April 13 th, 2006 This is a closed book and closed notes exam. There are total 3 parts. Please answer the questions in the provided space and use back
More informationBinary Search Trees. EECS 214, Fall 2018
Binary Search Trees EECS 214, Fall 2018 2 A data structure for dictionaries There are several data structures that we can use to represent dictionaries: A list of keys-value pairs A hash table An array
More informationCSE 373 Spring 2010: Midterm #1 (closed book, closed notes, NO calculators allowed)
Name: Email address: CSE 373 Spring 2010: Midterm #1 (closed book, closed notes, NO calculators allowed) Instructions: Read the directions for each question carefully before answering. We may give partial
More informationRevision Statement while return growth rate asymptotic notation complexity Compare algorithms Linear search Binary search Preconditions: sorted,
[1] Big-O Analysis AVERAGE(n) 1. sum 0 2. i 0. while i < n 4. number input_number(). sum sum + number 6. i i + 1 7. mean sum / n 8. return mean Revision Statement no. of times executed 1 1 2 1 n+1 4 n
More informationData Structures and Algorithms
Data Structures and Algorithms Spring 2017-2018 Outline 1 Priority Queues Outline Priority Queues 1 Priority Queues Jumping the Queue Priority Queues In normal queue, the mode of selection is first in,
More informationTopic Binary Trees (Non-Linear Data Structures)
Topic Binary Trees (Non-Linear Data Structures) CIS210 1 Linear Data Structures Arrays Linked lists Skip lists Self-organizing lists CIS210 2 Non-Linear Data Structures Hierarchical representation? Trees
More informationI2206 Data Structures TS 6: Binary Trees - Binary Search Trees
Lebanese University BS - Computer Science Faculty of Science 2018-2019 Section I I2206 Data Structures TS 6: Binary Trees - Binary Search Trees Exercise 1 What value does the following C function return?
More informationTrees, Binary Trees, and Binary Search Trees
COMP171 Trees, Binary Trees, and Binary Search Trees 2 Trees Linear access time of linked lists is prohibitive Does there exist any simple data structure for which the running time of most operations (search,
More informationCS 261 Data Structures. AVL Trees
CS 261 Data Structures AVL Trees 1 Binary Search Tree Complexity of BST operations: proportional to the length of the path from a node to the root Unbalanced tree: operations may be O(n) E.g.: adding elements
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 information(b) int count = 0; int i = 1; while (i<m) { for (int j=i; j<n; j++) { count = count + 1; i = i + 1; O(M + N 2 ) (c) int count = 0; int i,j,k; for (i=1
CPS 100 Exam 2 Solutions Spring 199 Dr Rodger 1 (3 pts) A virtual function in C++ is bound dynamically or statically? dynamic 2 (3 pts) When does one use a class template in C++? Templates are used to
More informationBINARY SEARCH TREES cs2420 Introduction to Algorithms and Data Structures Spring 2015
BINARY SEARCH TREES cs2420 Introduction to Algorithms and Data Structures Spring 2015 1 administrivia 2 -assignment 7 due tonight at midnight -asking for regrades through assignment 5 and midterm must
More informationData Structures Lab II. Binary Search Tree implementation
Data Structures Lab II Binary Search Tree implementation Objectives: Making students able to understand basic concepts relating to Binary Search Tree (BST). Making students able to implement Binary Search
More informationCode No: R Set No. 1
Code No: R05010106 Set No. 1 1. (a) Draw a Flowchart for the following The average score for 3 tests has to be greater than 80 for a candidate to qualify for the interview. Representing the conditional
More informationQ1 Q2 Q3 Q4 Q5 Q6 Total
Name: SSN: Computer Science Foundation Exam May 5, 006 Computer Science Section 1A Q1 Q Q3 Q4 Q5 Q6 Total KNW KNW KNW ANL,DSN KNW DSN You have to do all the 6 problems in this section of the exam. Partial
More informationCSI 402 Spring 2014 Programming Assignment I 1 / 15
CSI 402 Spring 2014 Programming Assignment I 1 / 15 Administrative Information Deadline: 11 PM, Friday, Feb. 14, 2014. Cutoff: 11 PM, Sunday, Feb. 16, 2014. The program must have three or more C source
More information20. Inheritance and Polymorphism
(Expression) Trees 20. Inheritance and Polymorphism Expression Trees, Inheritance, Code-Reuse, Virtual Functions, Polymorphism, Concepts of Object Oriented Programming bend fork 3 -(3-(4-5))*(3+4*5)/6
More information1) What is the primary purpose of template functions? 2) Suppose bag is a template class, what is the syntax for declaring a bag b of integers?
Review for Final (Chapter 6 13, 15) 6. Template functions & classes 1) What is the primary purpose of template functions? A. To allow a single function to be used with varying types of arguments B. To
More informationComputer Science II Fall 2009
Name: Computer Science II Fall 2009 Exam #2 Closed book and notes. This exam should have five problems and six pages. Problem 0: [1 point] On a scale of 0 5, where 5 is highest, I think I deserve a for
More informationOverview. Tree data structure Binary search trees. STL set and map classes B-trees for accessing secondary storage Applications
Trees 1 Overview Tree data structure Binary search trees Support O(log 2 N) operations Balanced trees STL set and map classes B-trees for accessing secondary storage Applications 2 Trees G is parent of
More informationFORTH SEMESTER DIPLOMA EXAMINATION IN ENGINEERING/ TECHNOLIGY- OCTOBER, 2012 DATA STRUCTURE
TED (10)-3071 Reg. No.. (REVISION-2010) Signature. FORTH SEMESTER DIPLOMA EXAMINATION IN ENGINEERING/ TECHNOLIGY- OCTOBER, 2012 DATA STRUCTURE (Common to CT and IF) [Time: 3 hours (Maximum marks: 100)
More informationData Structure. Chapter 5 Trees (Part II) Angela Chih-Wei Tang. National Central University Jhongli, Taiwan
Data Structure Chapter 5 Trees (Part II) Angela Chih-Wei Tang Department of Communication Engineering National Central University Jhongli, Taiwan 2010 Spring Threaded Binary Tree Problem: There are more
More informationCSCI Trees. Mark Redekopp David Kempe
CSCI 104 2-3 Trees Mark Redekopp David Kempe Trees & Maps/Sets C++ STL "maps" and "sets" use binary search trees internally to store their keys (and values) that can grow or contract as needed This allows
More informationBinary Tree. Binary tree terminology. Binary tree terminology Definition and Applications of Binary Trees
Binary Tree (Chapter 0. Starting Out with C++: From Control structures through Objects, Tony Gaddis) Le Thanh Huong School of Information and Communication Technology Hanoi University of Technology 11.1
More informationA set of nodes (or vertices) with a single starting point
Binary Search Trees Understand tree terminology Understand and implement tree traversals Define the binary search tree property Implement binary search trees Implement the TreeSort algorithm 2 A set of
More informationCSE 2320 Section 002, Fall 2015 Exam 2 Time: 80 mins
CSE 2320 Section 002, Fall 201 Exam 2 Time: 80 mins Name:. Student ID:. Total exam points: 100. Question Points Out of 1 24 2 10 3 10 4 18 6 1 16 Total 100 If you have the smallest doubt about what a question
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 informationSection 5.5. Left subtree The left subtree of a vertex V on a binary tree is the graph formed by the left child L of V, the descendents
Section 5.5 Binary Tree A binary tree is a rooted tree in which each vertex has at most two children and each child is designated as being a left child or a right child. Thus, in a binary tree, each vertex
More informationMARKING KEY The University of British Columbia MARKING KEY Computer Science 260 Midterm #2 Examination 12:30 noon, Thursday, March 15, 2012
MARKING KEY The University of British Columbia MARKING KEY Computer Science 260 Midterm #2 Examination 12:30 noon, Thursday, March 15, 2012 Instructor: K. S. Booth Time: 70 minutes (one hour ten minutes)
More informationData Structures Question Bank Multiple Choice
Section 1. Fundamentals: Complexity, Algorthm Analysis 1. An algorithm solves A single problem or function Multiple problems or functions Has a single programming language implementation 2. A solution
More informationCSE 100: HUFFMAN CODES
CSE 100: HUFFMAN CODES Code A Symbol Codeword S 00 P 01 A 10 M 11 Corresponding Binary Tree Code B Symbol Codeword S 0 P 1 A 10 M 11 Code C Symbol Codeword S 0 P 10 A 110 M 111 Problem Definition (revisited)
More informationCS 216 Exam 1 Fall SOLUTION
CS 216 Exam 1 Fall 2004 - SOLUTION Name: Lab Section: Email Address: Student ID # This exam is closed note, closed book. You will have an hour and fifty minutes total to complete the exam. You may NOT
More informationCompsci 100. Owen Astrachan April 14, 2010
Compsci 100 Owen Astrachan April 14, 2010 Name: Login: Honor code acknowledgment (signature) Problem 1 Problem 2 Problem 3 Problem 4 Problem 5 TOTAL: value 10 pts. 24 pts. 22 pts. 16 pts. 16 pts. 88 pts.
More informationBasic program The following is a basic program in C++; Basic C++ Source Code Compiler Object Code Linker (with libraries) Executable
Basic C++ Overview C++ is a version of the older C programming language. This is a language that is used for a wide variety of applications and which has a mature base of compilers and libraries. C++ is
More informationCS 315 Data Structures Spring 2012 Final examination Total Points: 80
CS 315 Data Structures Spring 2012 Final examination Total Points: 80 Name This is an open-book/open-notes exam. Write the answers in the space provided. Answer for a total of 80 points, including at least
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 informationLecture Notes 16 - Trees CSS 501 Data Structures and Object-Oriented Programming Professor Clark F. Olson
Lecture Notes 16 - Trees CSS 501 Data Structures and Object-Oriented Programming Professor Clark F. Olson Reading: Carrano, Chapter 15 Introduction to trees The data structures we have seen so far to implement
More informationCSE100 Practice Final Exam Section C Fall 2015: Dec 10 th, Problem Topic Points Possible Points Earned Grader
CSE100 Practice Final Exam Section C Fall 2015: Dec 10 th, 2015 Problem Topic Points Possible Points Earned Grader 1 The Basics 40 2 Application and Comparison 20 3 Run Time Analysis 20 4 C++ and Programming
More informationCSC 222: Computer Programming II. Spring 2004
CSC 222: Computer Programming II Spring 2004 Stacks and recursion stack ADT push, pop, top, empty, size vector-based implementation, library application: parenthesis/delimiter matching run-time
More information// a stack is printed from bottom (leftmost) to top (rightmost) System.out.println(stk);
CompSci 100 Test 2 Spring 2011 Prof. Rodger April 14, 2011 Some common recurrence relations T(n) = T(n/2) +O(1) O(log n) T(n) = T(n/2) +O(n) O(n) T(n) = 2T(n/2) +O(1) O(n) T(n) = 2T(n/2) +O(n) O(n log
More information04-24/26 Discussion Notes
04-24/26 Discussion Notes PIC 10B Spring 2018 1 When const references should be used and should not be used 1.1 Parameters to constructors We ve already seen code like the following 1 int add10 ( int x
More informationCSE 332 Spring 2013: Midterm Exam (closed book, closed notes, no calculators)
Name: Email address: Quiz Section: CSE 332 Spring 2013: Midterm Exam (closed book, closed notes, no calculators) Instructions: Read the directions for each question carefully before answering. We will
More informationPriority Queues and Huffman Trees
Priority Queues and Huffman Trees 1 the Heap storing the heap with a vector deleting from the heap 2 Binary Search Trees sorting integer numbers deleting from a binary search tree 3 Huffman Trees encoding
More informationCMSC 341. Binary Search Trees CMSC 341 BST
CMSC 341 Binary Search Trees CMSC 341 BST Announcements Homework #3 dues Thursday (10/5/2017) Exam #1 next Thursday (10/12/2017) CMSC 341 BST A Generic Tree CMSC 341 BST Binary Tree CMSC 341 BST The Binary
More informationMID TERM MEGA FILE SOLVED BY VU HELPER Which one of the following statement is NOT correct.
MID TERM MEGA FILE SOLVED BY VU HELPER Which one of the following statement is NOT correct. In linked list the elements are necessarily to be contiguous In linked list the elements may locate at far positions
More informationCSCI 104 Binary Trees / Priority Queues / Heaps. Mark Redekopp Michael Crowley
CSCI 04 Binary Trees / Priority Queues / Heaps Mark Redekopp Michael Crowley Trees Definition: A connected, acyclic (no cycles) graph with: A root node, r, that has 0 or more subtrees Exactly one path
More informationData Structures in Java
Data Structures in Java Lecture 9: Binary Search Trees. 10/7/015 Daniel Bauer 1 Contents 1. Binary Search Trees. Implementing Maps with BSTs Map ADT A map is collection of (key, value) pairs. Keys are
More informationCS102 Binary Search Trees
CS102 Binary Search Trees Prof Tejada 1 To speed up insertion, removal and search, modify the idea of a Binary Tree to create a Binary Search Tree (BST) Binary Search Trees Binary Search Trees have one
More informationReview: Exam 1. Your First C++ Program. Declaration Statements. Tells the compiler. Examples of declaration statements
Review: Exam 1 9/20/06 CS150 Introduction to Computer Science 1 1 Your First C++ Program 1 //*********************************************************** 2 // File name: hello.cpp 3 // Author: Shereen Khoja
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 informationChapter 5. Binary Trees
Chapter 5 Binary Trees Definitions and Properties A binary tree is made up of a finite set of elements called nodes It consists of a root and two subtrees There is an edge from the root to its children
More informationBinary Search Tree (2A) Young Won Lim 5/17/18
Binary Search Tree (2A) Copyright (c) 2015-2018 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or
More informationCS 2150 Final Exam, Spring 2018 Page 1 of 10 UVa userid:
CS 2150 Final Exam, Spring 2018 Page 1 of 10 UVa userid: CS 2150 Final Exam Name You MUST write your e-mail ID on EACH page and put your name on the top of this page, too. If you are still writing when
More information1 Short Answer (8 Points Each)
1 Short Answer (8 Points Each) 1. State the definitions of Big-O, Big-Ω, and Big-Θ. Big-O (Upper Bound): A function f(x) is O(g(x)) if and only if there exist a constant C and a constant k such that, for
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 informationSorting Pearson Education, Inc. All rights reserved.
1 19 Sorting 2 19.1 Introduction (Cont.) Sorting data Place data in order Typically ascending or descending Based on one or more sort keys Algorithms Insertion sort Selection sort Merge sort More efficient,
More informationSecond Examination Solution
University of Illinois at Urbana-Champaign Department of Computer Science Second Examination Solution CS 225 Data Structures and Software Principles Fall 2007 7p-9p, Thursday, November 8 Name: NetID: Lab
More informationvoid insert( Type const & ) void push_front( Type const & )
6.1 Binary Search Trees A binary search tree is a data structure that can be used for storing sorted data. We will begin by discussing an Abstract Sorted List or Sorted List ADT and then proceed to describe
More informationUpcoming ACM Events Linux Crash Course Date: Time: Location: Weekly Crack the Coding Interview Date:
Upcoming ACM Events Linux Crash Course Date: Oct. 2nd and 3rd Time: 1:15 pm - 3:15 pm Location: UW1-210 (10/02) and UW1-221 (10/03) Weekly Crack the Coding Interview Date: Weekly Fridays from Oct. 5th
More informationBinary Search Trees. Contents. Steven J. Zeil. July 11, Definition: Binary Search Trees The Binary Search Tree ADT...
Steven J. Zeil July 11, 2013 Contents 1 Definition: Binary Search Trees 2 1.1 The Binary Search Tree ADT.................................................... 3 2 Implementing Binary Search Trees 7 2.1 Searching
More information