Lecture 16. Lecture
|
|
- James Wilkerson
- 5 years ago
- Views:
Transcription
1 Recursive lists D0010E Variants of lists Doubly linked lists Binary trees Circular lists - Håkan Jonsson 1 - Håkan Jonsson 2 - Håkan Jonsson 3 1
2 1. Circular lists A singly linked list has a beginning and an end. In a circular list there is a link also from the end to the beginning. Makes it possible to move between elements in circle. Useful in situawons where a program should pay axenwon to several things (objects) one a\er another over and over again. Process control in operawng systems. Round robin. Lecture 17 - Håkan Jonsson 4 OperaWons - Håkan Jonsson 5 - Håkan Jonsson 6 2
3 2. Doubly linked lists A double linked list is a linked list where internal nodes have two links. One leading forward ("rightwards") to the next node and one leading backwards ("le\wards") to the previous node. Such a list can be seen as two single linked lists going opposite direcwons merged into one. It has two headers, one at each end of the list. It provides much flexibility to the programmer since it is easy to move among the elements and in any direcwon. Add mulwple iterators using the Iterator design pa7ern - to enable clients to iterate over the elements of the list. - Håkan Jonsson 7 ImplementaWon view Headers - Håkan Jonsson 8 UML - Håkan Jonsson 9 3
4 ImplementaWon - Håkan Jonsson 10 Method: insertbefore - Håkan Jonsson 11 - Håkan Jonsson 12 4
5 3. Lists as recursive structures We have so far seen two ways to implement lists: Using links and internal nodes. A list has an inner structure that consists of node objects linked to each other. Singly and doubly linked lists. Using arrays. List elements are placed in an array. Indices are used as links. These implementawons are based on the view that a list is simply a sequence. An alternawve view is to describe a list recursively. What follows is a parallel between how data organiza>on can be view as either iterawve (sequenwal) or recursive to how computa>ons can be view as either iterawve or recursive. - Håkan Jonsson 13 - Håkan Jonsson Rooms reconsidered In Lab assignment 2 we programmed dynamic objects of type Room. A room had four corridors leading out of the room to other rooms, or just back again. (Technically, they were null to start with but assume for now they were all valid references.) W N S E Here all four corridors have been assigned the value this. - Håkan Jonsson 15 5
6 N W E S public class Room { Color c; Room north; Room east; Room south; Room west;... - Håkan Jonsson 16 W E public class Room { Color c; Room east; Room west;... - Håkan Jonsson 17 E public class Room { Color c; Room east;... - Håkan Jonsson 18 6
7 E public class Room { Color c; Room east;... - Håkan Jonsson 19 E public class Room { Color c; Room east;... - Håkan Jonsson 20 - Håkan Jonsson 21 7
8 5. A recursive stack This kind of stack is either empty, lacking content, or, non- empty, containing one element and a stack. 2: A non- empty stack containing "wine- red" and this stack. 1 d 2 d 1: A non- empty stack containing "blue" and this stack. 3 d 3: An empty stack. - Håkan Jonsson 22 - Håkan Jonsson Example: IPStack public class IPStack<E> implements Iterable<E> { private E value; private IPStack<E> stack; public IPStack() { this.stack = this; public IPStack(E value, IPStack<E> stack) { this.value = value; this.stack = stack; IPStackIterator<E> <<interface>> Iterator<E> + hasnext() : boolean + next() : void + remove() : void <<interface>> Iterable<E> + iterator() : Iterator<E> IPStack<E> + <<constructor>> IPStack() + <<constructor>> IPStack(value : E, stack : IPStack<E>) + isempty() : boolean + push(item : E) : IPStack<E> + pop() : IPStack<E> + peek() : E + iterator() : Iterator<E> - s : IP + isem + push + pop( + peek + itera - Håkan Jonsson 24 8
9 ImplementaWon public boolean isempty() { return stack == this; public IPStack<E> push(e value) { return new IPStack<E>(value, this); public IPStack<E> pop() { if (!isempty()) { return stack; else { throw new NoSuchElementExcepWon(); public E peek() { if (!isempty()) { return value; else { throw new NoSuchElementExcepWon(); - Håkan Jonsson 25 ImplementaWon private class IPStackIterator implements Iterator<E> { IPStack<E> stack = IPStack.this; public boolean hasnext() { return!stack.isempty(); public E next() { E element = stack.peek(); stack = stack.pop(); return element; public void remove() { throw new UnsupportedOperaWonExcepWon(); public Iterator<E> iterator() { return new IPStackIterator(); - Håkan Jonsson 26 - Håkan Jonsson 27 9
10 7. About IPStack An IPStack object never changes so it is immutable. All operawons create new stacks or returns parts of exiswng stacks. Moreover, it is persistent: A persistent data structure is a data structure that always preserves the previous version of itself when it is modified. Actually, persistence follows since it is immutable. Each iterator gets a reference to the current stack, that can not change. - Håkan Jonsson 28 UML <<interface>> Iterator<E> + hasnext() : boolean + next() : void + remove() : void IPStackIterator<E> <<interface>> Iterable<E> + iterator() : Iterator<E> I = Immutable P = Persistent IPStack<E> + <<constructor>> IPStack() + <<constructor>> IPStack(value : E, stack : IPStack<E>) + isempty() : boolean + push(item : E) : IPStack<E> + pop() : IPStack<E> + peek() : E + iterator() : Iterator<E> MPStack<E> - s : IPStack<E> + isempty() : boolean + push(item : E) : void + pop() : void + peek() : E + iterator() : Iterator<E> M = Mutable P = Persistent - Håkan Jonsson 29 - Håkan Jonsson 30 10
11 8. Natural numbers Peano's axioms gives a recursive definiwon of natural numbers: 1) Zero is a natural number. 2) The successor of a natural number is a natural number. 3) Natural numbers with the same successor are idenwcal. 4) Zero is not the successor of any natural number. 5) If P is a property such that P holds for zero, and P also holds for the successor of a natural number n whenever P holds for n, P holds for all natural numbers. Natural numbers and the way we usually refer to them in the decimal system: "Zero" 0 (by Axiom 1) "The successor of zero" 1 (by Axiom 2) "The successor of the successor of zero" 2 ( - "- ) and so on for 3, 4, 5,... - Håkan Jonsson 31 RepresenWng natural numbers If we use "Zero" for 0 and "Succ" for "successor" we could write: Zero 1 Succ Zero 2 Succ (Succ Zero) 3 Succ (Succ (Succ Zero)) 4 Succ (Succ (Succ (Succ Zero))) 5... and so on. To introduce natural numbers into Java we define a class Nat with subclasses Zero and Succ. We can then define operawons like addi>on and mul>plica>on: x + Zero = x x * Zero = Zero x + (Succ y) = Succ (x + y) x * (Succ y) = x + x * y - Håkan Jonsson 32 AddiWon Example: x = Succ (Succ Zero) = 2 y = Succ (Succ (Succ Zero)) = 3 x + y = Succ (Succ Zero) + Succ (Succ (Succ Zero)) = Succ (Succ (Succ Zero) + Succ (Succ Zero)) = Succ (Succ (Succ (Succ Zero) + Succ Zero)) = Succ (Succ (Succ (Succ (Succ Zero) + Zero))) = Succ (Succ (Succ (Succ (Succ Zero)))) = 5. - Håkan Jonsson 33 11
12 MulWplicaWon Example: x = Succ (Succ Zero) = 2 y = Succ (Succ (Succ Zero)) = 3 x * y = Succ (Succ Zero) * Succ (Succ (Succ Zero)) = Succ (Succ Zero) + (Succ (Succ Zero) * Succ (Succ Zero)) = Succ (Succ Zero) + (Succ (Succ Zero) + (Succ (Succ Zero) * Succ Zero)) = Succ (Succ Zero) + (Succ (Succ Zero) + (Succ (Succ Zero) + (Succ (Succ Zero) * Zero))) = Succ (Succ Zero) + (Succ (Succ Zero) + (Succ (Succ Zero) + (Zero))) = 2 + (2 + (2 + 0)) = 2 + (2 + 2) = = 6 by the addiwon rule. - Håkan Jonsson 34 ImplementaWon l16.peano.core l16.peano Peano + main(string[] args) : void + f(nat n) : Nat <<abstract>> Nat <<abstract>> + add(nat n) : Nat <<abstract>> + mul(nat n) : Nat <<abstract>> + pred() : Nat <<abstract>> + nat2int() : int <<abstract>> + iszero() : boolean + int2nat(int i) : Nat Zero + add(nat n) : Nat + add(nat n) : Nat + pred() : Nat + nat2int() : int + iszero() : boolean + tostring() : String Succ - n : Nat + add(nat n) : Nat + add(nat n) : Nat + pred() : Nat + nat2int() : int + iszero() : boolean + tostring() : String - Håkan Jonsson 35 - Håkan Jonsson 36 12
13 9. Binary search trees A binary tree is linked structure similar to a list but in which each node has not one but two reference variables that refer to the rest of the structure. A list can be seen as the special case of a binary tree in which one of the two variables are null in all nodes. A binary tree is a rooted singly- connected acyclic graph. A binary tree has two children called the lef subtree and the right subtree. private class TreeNode<E> {! E content;! TreeNode left, right;!! private class ListNode<E> {! E content;! ListNode next;!! - Håkan Jonsson 37 Binary search trees Let B be a binary tree with element E in the root, le\ subtree L, and right subtree R. If either B is empty or if the elements in L are all smaller than E, and the elements in R are at least as large as E, B is a binary search tree if, and only if, also L and R are binary search trees. Binary search trees are used to order things. They can be made very efficient ("balanced"). B L E R - Håkan Jonsson 38 - Håkan Jonsson 39 13
MULTIMEDIA COLLEGE JALAN GURNEY KIRI KUALA LUMPUR
STUDENT IDENTIFICATION NO MULTIMEDIA COLLEGE JALAN GURNEY KIRI 54100 KUALA LUMPUR FIFTH SEMESTER FINAL EXAMINATION, 2014/2015 SESSION PSD2023 ALGORITHM & DATA STRUCTURE DSEW-E-F-2/13 25 MAY 2015 9.00 AM
More informationCsci 102: Sample Exam
Csci 102: Sample Exam Duration: 65 minutes Name: NetID: Student to your left: Student to your right: DO NOT OPEN THIS EXAM UNTIL INSTRUCTED Instructions: Write your full name and your NetID on the front
More informationCMSC 132, Object-Oriented Programming II Summer Lecture 9:
CMSC 132, Object-Oriented Programming II Summer 2018 Lecturer: Anwar Mamat Lecture 9: Disclaimer: These notes may be distributed outside this class only with the permission of the Instructor. 9.1 QUEUE
More informationBasic Data Structures
Basic Data Structures Some Java Preliminaries Generics (aka parametrized types) is a Java mechanism that enables the implementation of collection ADTs that can store any type of data Stack s1
More informationBasic Data Structures 1 / 24
Basic Data Structures 1 / 24 Outline 1 Some Java Preliminaries 2 Linked Lists 3 Bags 4 Queues 5 Stacks 6 Performance Characteristics 2 / 24 Some Java Preliminaries Generics (aka parametrized types) is
More informationEXAMINATIONS 2016 TRIMESTER 2
T E W H A R E W Ā N A N G A O T E Ū P O K O O T E I K A A M Ā U I VUW VICTORIA U N I V E R S I T Y O F W E L L I N G T O N EXAMINATIONS 2016 TRIMESTER 2 COMP103 INTRODUCTION TO DATA STRUCTURES AND ALGORITHMS
More informationComputer Science 62. Bruce/Mawhorter Fall 16. Midterm Examination. October 5, Question Points Score TOTAL 52 SOLUTIONS. Your name (Please print)
Computer Science 62 Bruce/Mawhorter Fall 16 Midterm Examination October 5, 2016 Question Points Score 1 15 2 10 3 10 4 8 5 9 TOTAL 52 SOLUTIONS Your name (Please print) 1. Suppose you are given a singly-linked
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 informationLinear Data Structures
Linear Data Structures Arrays Arrays are stored in contiguous memory locations and contain similar data An element can be accessed, inserted or removed by specifying its position (number of elements preceding
More informationEXAMINATIONS 2011 Trimester 2, MID-TERM TEST. COMP103 Introduction to Data Structures and Algorithms SOLUTIONS
T E W H A R E W Ā N A N G A O T E Ū P O K O O T E I K A A M Ā U I VUW V I C T O R I A UNIVERSITY OF WELLINGTON Student ID:....................... EXAMINATIONS 2011 Trimester 2, MID-TERM TEST COMP103 Introduction
More information9/26/2018 Data Structure & Algorithm. Assignment04: 3 parts Quiz: recursion, insertionsort, trees Basic concept: Linked-List Priority queues Heaps
9/26/2018 Data Structure & Algorithm Assignment04: 3 parts Quiz: recursion, insertionsort, trees Basic concept: Linked-List Priority queues Heaps 1 Quiz 10 points (as stated in the first class meeting)
More informationEXAMINATIONS 2012 Trimester 1, MID-TERM TEST. COMP103 Introduction to Data Structures and Algorithms SOLUTIONS
T E W H A R E W Ā N A N G A O T E Ū P O K O O T E I K A A M Ā U I VUW V I C T O R I A UNIVERSITY OF WELLINGTON Student ID:....................... EXAMINATIONS 2012 Trimester 1, MID-TERM TEST COMP103 Introduction
More informationJava Review: Objects
Outline Java review Abstract Data Types (ADTs) Interfaces Class Hierarchy, Abstract Classes, Inheritance Invariants Lists ArrayList LinkedList runtime analysis Iterators Java references 1 Exam Preparation
More informationAbout this exam review
Final Exam Review About this exam review I ve prepared an outline of the material covered in class May not be totally complete! Exam may ask about things that were covered in class but not in this review
More information1.00 Lecture 26. Data Structures: Introduction Stacks. Reading for next time: Big Java: Data Structures
1.00 Lecture 26 Data Structures: Introduction Stacks Reading for next time: Big Java: 19.1-19.3 Data Structures Set of primitives used in algorithms, simulations, operating systems, applications to: Store
More informationDNHI Homework 3 Solutions List, Stacs and Queues
Solutions List, Stacs and Queues Problem 1 Given the IntegerQueue ADT below state the return value and show the content of the, initially empty, queue of Integer objects after each of the following operations.
More informationCSCI 136 Data Structures & Advanced Programming. Lecture 22 Spring 2018 Profs Bill & Jon
CSCI 136 Data Structures & Advanced Programming Lecture 22 Spring 2018 Profs Bill & Jon Administrative Details CS Colloquium?!?! Meets (almost) every Friday at 2:30pm Guest speaker presents their research
More informationSummer Session 2004 Prelim I July 12, CUID: NetID:
COM S / ENGRD 211 Computers and Programming Summer Session 2004 Prelim I July 12, 2004 Name: CUID: NetID: You have one hour and fifteen minutes to do this exam. All programs must be written in Java. Where
More informationTitle Description Participants Textbook
Podcast Ch18d Title: Binary Search Tree Iterator Description: Additional operations first and last; the BST iterator Participants: Barry Kurtz (instructor); John Helfert and Tobie Williams (students) Textbook:
More informationCSE Summer Assignment #2
CSE2011 - Summer 2016 - Assignment #2 Due Date: 28 th of June 2014 at 1:00PM NOTES You may work in groups of up to 3 and make one common submission (if more than one partner submits, it causes us delays
More informationEXAMINATIONS 2015 COMP103 INTRODUCTION TO DATA STRUCTURES AND ALGORITHMS
T E W H A R E W Ā N A N G A O T E Student ID:....................... Ū P O K O O T E I K A A M Ā U I VUW VICTORIA U N I V E R S I T Y O F W E L L I N G T O N EXAMINATIONS 2015 TRIMESTER 2 COMP103 INTRODUCTION
More informationIntroduction to Computer Science II (ITI 1121) Final Examination
Université d Ottawa Faculté de génie École d ingénierie et de technologie de l information University of Ottawa Faculty of Engineering School of Information Technology and Engineering Introduction to Computer
More informationStacks (5.1) Abstract Data Types (ADTs) CSE 2011 Winter 2011
Stacks (5.1) CSE 2011 Winter 2011 26 January 2011 1 Abstract Data Types (ADTs) An abstract data type (ADT) is an abstraction of a data structure An ADT specifies: Data stored Operations on the data Error
More informationComputer Science 62. Midterm Examination
Computer Science 62 Bruce/Mawhorter Fall 16 Midterm Examination October 5, 2016 Question Points Score 1 15 2 10 3 10 4 8 5 9 TOTAL 52 Your name (Please print) 1. Suppose you are given a singly-linked list
More informationTopic 14. The BinaryTree ADT
Topic 14 The BinaryTree ADT Objectives Define trees as data structures Define the terms associated with trees Discuss tree traversal algorithms Discuss a binary tree implementation Examine a binary tree
More informationName Section Number. CS210 Exam #4 *** PLEASE TURN OFF ALL CELL PHONES*** Practice
Name Section Number CS210 Exam #4 *** PLEASE TURN OFF ALL CELL PHONES*** Practice All Sections Bob Wilson OPEN BOOK/OPEN NOTES You will have all 90 minutes until the start of the next class period. Spend
More informationMIDTERM EXAMINATION Spring 2010 CS301- Data Structures
MIDTERM EXAMINATION Spring 2010 CS301- Data Structures Question No: 1 Which one of the following statement is NOT correct. In linked list the elements are necessarily to be contiguous In linked list the
More informationCS350: Data Structures Stacks
Stacks James Moscola Department of Engineering & Computer Science York College of Pennsylvania James Moscola Stacks Stacks are a very common data structure that can be used for a variety of data storage
More informationCMPSCI 187: Programming With Data Structures. Lecture 12: Implementing Stacks With Linked Lists 5 October 2011
CMPSCI 187: Programming With Data Structures Lecture 12: Implementing Stacks With Linked Lists 5 October 2011 Implementing Stacks With Linked Lists Overview: The LinkedStack Class from L&C The Fields and
More informationCIS Fall Data Structures Midterm exam 10/16/2012
CIS 2168 2012 Fall Data Structures Midterm exam 10/16/2012 Name: Problem 1 (30 points) 1. Suppose we have an array implementation of the stack class, with ten items in the stack stored at data[0] through
More informationEXAMINATIONS 2017 TRIMESTER 2
T E W H A R E W Ā N A N G A O T E Ū P O K O O T E I K A A M Ā U I VUW VICTORIA U N I V E R S I T Y O F W E L L I N G T O N EXAMINATIONS 2017 TRIMESTER 2 COMP103 INTRODUCTION TO DATA STRUCTURES AND ALGORITHMS
More informationIMPLEMENTING BINARY TREES
IMPLEMENTING BINARY TREES Chapter 6 A Binary Tree BinaryTree a = new BinaryTree(); a A B C D E F 1 A Binary Tree BinaryTree a = new BinaryTree(); a A B C D E F A Binary
More informationCS 231 Data Structures and Algorithms Fall Binary Search Trees Lecture 23 October 29, Prof. Zadia Codabux
CS 231 Data Structures and Algorithms Fall 2018 Binary Search Trees Lecture 23 October 29, 2018 Prof. Zadia Codabux 1 Agenda Ternary Operator Binary Search Tree Node based implementation Complexity 2 Administrative
More informationImplementing Dynamic Data Structures
Chapter 16 Implementing Dynamic Data Structures Lecture slides for: Java Actually: A Comprehensive Primer in Programming Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen Cengage Learning, 2008. ISBN:
More informationCSE 143 SAMPLE MIDTERM
CSE 143 SAMPLE MIDTERM 1. (5 points) In some methods, you wrote code to check if a certain precondition was held. If the precondition did not hold, then you threw an exception. This leads to robust code
More informationCMSC 132, Object-Oriented Programming II Summer Lecture 6:
CMSC 132, Object-Oriented Programming II Summer 2017 Lecturer: Anwar Mamat Lecture 6: Disclaimer: These notes may be distributed outside this class only with the permission of the Instructor. 6.1 Singly
More informationModel Solutions. COMP 103: Test May, 2013
Family Name:............................. Other Names:............................. ID Number:............................... Signature.................................. Instructions Time allowed: 45 minutes
More informationLinked List Nodes (reminder)
Outline linked lists reminders: nodes, implementation, invariants circular linked list doubly-linked lists iterators the Java foreach statement iterator implementation the ListIterator interface Linked
More informationIntroduction to Computing II (ITI 1121) Final Examination
Introduction to Computing II (ITI 1121) Final Examination Instructor: Marcel Turcotte April 2010, duration: 3 hours Identification Student name: Student number: Signature: Instructions 1. 2. 3. 4. 5. 6.
More informationCmpSci 187: Programming with Data Structures Spring 2015
CmpSci 187: Programming with Data Structures Spring 2015 Lecture #17, Implementing Binary Search Trees John Ridgway April 2, 2015 1 Implementing Binary Search Trees Review: The BST Interface Binary search
More informationThe tree data structure. Trees COL 106. Amit Kumar Shweta Agrawal. Acknowledgement :Many slides are courtesy Douglas Harder, UWaterloo
The tree data structure 1 Trees COL 106 Amit Kumar Shweta Agrawal Acknowledgement :Many slides are courtesy Douglas Harder, UWaterloo 1 Trees The tree data structure 3 A rooted tree data structure stores
More informationfrom inheritance onwards but no GUI programming expect to see an inheritance question, recursion questions, data structure questions
Exam information in lab Tue, 18 Apr 2017, 9:00-noon programming part from inheritance onwards but no GUI programming expect to see an inheritance question, recursion questions, data structure questions
More information1. Stack Implementation Using 1D Array
Lecture 5 Stacks 1 Lecture Content 1. Stack Implementation Using 1D Array 2. Stack Implementation Using Singly Linked List 3. Applications of Stack 3.1 Infix and Postfix Arithmetic Expressions 3.2 Evaluate
More informationLists. CSC212 Lecture 8 D. Thiebaut, Fall 2014
Lists CSC212 Lecture 8 D. Thiebaut, Fall 2014 Review List = Organization of Data in a Linear Fashion, where Order is Important Set of actions that can be carried out efficiently on the data. Typical Actions
More informationStack Implementation
Stack Implementation (In Java Using BlueJ) What is BlueJ? BlueJ is a Java integrated development environment (IDE) which has been designed specifically for learning object oriented programming in Java.
More informationEXAMINATIONS 2012 MID YEAR. COMP103 Introduction to Data Structures and Algorithms SOLUTIONS
T E W H A R E W Ā N A N G A O T E Ū P O K O O T E I K A A M Ā U I VUW V I C T O R I A UNIVERSITY OF WELLINGTON Student ID:....................... EXAMINATIONS 2012 MID YEAR COMP103 Introduction to Data
More informationReferences and Homework ABSTRACT DATA TYPES; LISTS & TREES. Abstract Data Type (ADT) 9/24/14. ADT example: Set (bunch of different values)
9// References and Homework Text: Chapters, and ABSTRACT DATA TYPES; LISTS & TREES Homework: Learn these List methods, from http://docs.oracle.com/javase/7/docs/api/java/util/list.html add, addall, contains,
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 informationtree nonlinear Examples
The Tree ADT Objectives Define trees as data structures Define the terms associated with trees Discuss tree traversal algorithms Discuss a binary tree implementation Examine a binary tree example 10-2
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 informationAgenda. Inner classes and implementation of ArrayList Nested classes and inner classes The AbstractCollection class Implementation of ArrayList!
Implementations I 1 Agenda Inner classes and implementation of ArrayList Nested classes and inner classes The AbstractCollection class Implementation of ArrayList! Stack and queues Array-based implementations
More informationECE 242 Fall 13 Exam I Profs. Wolf and Tessier
ECE 242 Fall 13 Exam I Profs. Wolf and Tessier Name: ID Number: Maximum Achieved Question 1 16 Question 2 24 Question 3 18 Question 4 18 Question 5 24 Total 100 This exam is closed book, closed notes.
More information6.005 Elements of Software Construction Fall 2008
MIT OpenCourseWare http://ocw.mit.edu 6.005 Elements of Software Construction Fall 2008 For information about citing these materials or our Terms of Use, visit: http://ocw.mit.edu/terms. 6.005 elements
More informationAnnouncements Queues. Queues
Announcements. Queues Queues A queue is consistent with the general concept of a waiting line to buy movie tickets a request to print a document crawling the web to retrieve documents A queue is a linear
More informationLecture 5. Lecture
this GUI Example: SignalGUI Orphans D0010E Object- Oriented Programming and Design Model- View- Control Example: Counter Observer Recursive References Design PaOerns - Håkan Jonsson 1 1 About dynamic objects
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 informationIntroduction to Computer Science II (CSI 1101) Final Examination
Identification Introduction to Computer Science II (CSI 1101) Final Examination Student name (firstname, surname): Instructor: Marcel Turcotte April 2003, duration: 3 hours Student number: designated seat:
More informationWrite a program to implement stack or any other data structure in Java ASSIGNMENT NO 15
Write a program to implement stack or any other data structure in Java ASSIGNMENT NO 15 Title: Demonstrate implementation of data structure in Java Objectives: To learn implementation of data structure
More informationIterators and Sequences
Iterators and Sequences Iterators and Sequences 1 Iterators An iterator abstracts the process of scanning through a collection of elements It maintains a cursor that sits between elements in the list,
More informationCOMP250: Stacks. Jérôme Waldispühl School of Computer Science McGill University. Based on slides from (Goodrich & Tamassia, 2004)
COMP250: Stacks Jérôme Waldispühl School of Computer Science McGill University Based on slides from (Goodrich & Tamassia, 2004) 2004 Goodrich, Tamassia The Stack ADT A Stack ADT is a list that allows only
More informationCOMP 103 Introduction to Data Structures and Algorithms
T E W H A R E W Ā N A N G A O T E Ū P O K O O T E I K A A M Ā U I VUW V I C T O R I A UNIVERSITY OF WELLINGTON Student ID:..................... EXAMINATIONS 2005 END-YEAR COMP 103 Introduction to Data
More informationinfix expressions (review)
Outline infix, prefix, and postfix expressions queues queue interface queue applications queue implementation: array queue queue implementation: linked queue application of queues and stacks: data structure
More information+ Abstract Data Types
Linked Lists Abstract Data Types An Abstract Data Type (ADT) is: a set of values a set of operations Sounds familiar, right? I gave a similar definition for a data structure. Abstract Data Types Abstract
More informationComputer Science E-119 Fall Problem Set 4. Due prior to lecture on Wednesday, November 28
Computer Science E-119 Fall 2012 Due prior to lecture on Wednesday, November 28 Getting Started To get the files that you will need for this problem set, log into nice.harvard.edu and enter the following
More informationData Structures G5029
Data Structures G5029 Lecture 2 Kingsley Sage Room 5C16, Pevensey III khs20@sussex.ac.uk University of Sussex 2006 Lecture 2 Stacks The usual analogy is the stack of plates. A way of buffering a stream
More informationIntroduction to Linked Data Structures
Introduction to Linked Data Structures A linked data structure consists of capsules of data known as nodes that are connected via links Links can be viewed as arrows and thought of as one way passages
More informationUnit 9 Practice Test (AB27-30)
Unit 9 Practice Test (AB27-30) Name 1. Consider the following method: public static int checktree(treenode root) return 0; int x = checktree(root.getleft()); if ( x >= 0 && checktree(root.getright()) ==
More informationPRIORITY QUEUES AND HEAPS
PRIORITY QUEUES AND HEAPS Lecture 17 CS2110 Spring 201 Readings and Homework 2 Read Chapter 2 A Heap Implementation to learn about heaps Exercise: Salespeople often make matrices that show all the great
More informationEXAMINATIONS 2005 END-YEAR. COMP 103 Introduction to Data Structures and Algorithms
T E W H A R E W Ā N A N G A O T E Ū P O K O O T E I K A A M Ā U I ÎÍÏ V I C T O R I A UNIVERSITY OF WELLINGTON EXAMINATIONS 2005 END-YEAR COMP 103 Introduction to Data Structures and Algorithms Time Allowed:
More informationName Section Number. CS210 Exam #2 *** PLEASE TURN OFF ALL CELL PHONES*** Practice
Name Section Number CS210 Exam #2 *** PLEASE TURN OFF ALL CELL PHONES*** Practice All Sections Bob Wilson OPEN BOOK / OPEN NOTES You will have all 90 minutes until the start of the next class period. Spend
More informationDM537 Object-Oriented Programming. Peter Schneider-Kamp.
DM537 Object-Oriented Programming Peter Schneider-Kamp petersk@imada.sdu.dk! http://imada.sdu.dk/~petersk/dm537/! RECURSION (REVISITED) 2 Recursion (Revisited) recursive function = a function that calls
More informationCS61BL: Data Structures & Programming Methodology Summer 2014
CS61BL: Data Structures & Programming Methodology Summer 2014 Instructor: Edwin Liao Midterm 2 July 30, 2014 Name: Student ID Number: Section Time: TA: Course Login: cs61bl-?? Person on Left: Possibly
More informationAgenda. Inner classes and implementation of ArrayList Nested classes and inner classes The AbstractCollection class Implementation of ArrayList
Implementations I 1 Agenda Inner classes and implementation of ArrayList Nested classes and inner classes The AbstractCollection class Implementation of ArrayList Stack and queues Array-based implementations
More informationFigure 18.4 A Unix directory. 02/10/04 Lecture 9 1
Data Structures & Problem Solving using JAVA/2E Mark Allen Weiss 2002 Addison Wesley Figure 18.4 A Unix directory 02/10/04 Lecture 9 1 Data Structures & Problem Solving using JAVA/2E Mark Allen Weiss 2002
More informationIntroduction to Computing II (ITI 1121) FINAL EXAMINATION
Université d Ottawa Faculté de génie École de science informatique et de génie électrique University of Ottawa Faculty of Engineering School of Electrical Engineering and Computer Science Identification
More informationLecture 27. Binary Search Trees. Binary Search Trees
Lecture Binary Search Trees Binary Search Trees In the previous lecture, we defined the concept of binary search tree as a binary tree of nodes containing an ordered key with the following additional property.
More informationFigure 18.4 A Unix directory. 02/13/03 Lecture 11 1
Figure 18.4 A Unix directory 02/13/03 Lecture 11 1 Figure 18.7 The Unix directory with file sizes 02/13/03 Lecture 11 2 Figure 18.11 Uses of binary trees: (a) an expression tree and (b) a Huffman coding
More informationC Sc 227 Practice Test 2 Section Leader Your Name 100pts. a. 1D array b. PriorityList<E> c. ArrayPriorityList<E>
C Sc 227 Practice Test 2 Section Leader Your Name 100pts 1. Approximately how many lectures remain in C Sc 227 (give or take 2)? (2pts) 2. Determine the tightest upper bound runtimes of the following loops.
More informationPRIORITY QUEUES AND HEAPS
10//1 Readings and Homework Read Chapter A Heap Implementation to learn about heaps PRIORITY QUEUES AND HEAPS Lecture 17 CS10 Fall 01 Exercise: Salespeople often make matrices that show all the great features
More informationMore Data Structures (Part 1) Stacks
More Data Structures (Part 1) Stacks 1 Stack examples of stacks 2 Top of Stack top of the stack 3 Stack Operations classically, stacks only support two operations 1. push 2. pop add to the top of the stack
More informationAbstract vs concrete data structures HEAPS AND PRIORITY QUEUES. Abstract vs concrete data structures. Concrete Data Types. Concrete data structures
10/1/17 Abstract vs concrete data structures 2 Abstract data structures are interfaces they specify only interface (method names and specs) not implementation (method bodies, fields, ) HEAPS AND PRIORITY
More informationObject Oriented Software Design
Object Oriented Software Design Inner classes, RTTI, Tree implementation Giuseppe Lipari http://retis.sssup.it/~lipari Scuola Superiore Sant Anna Pisa October 29, 2010 G. Lipari (Scuola Superiore Sant
More informationLists. CITS2200 Data Structures and Algorithms. Topic 9
CITS2200 Data Structures and Algorithms Topic 9 Lists Why lists? List windows Specification Block representation Singly linked representation Performance comparisons Reading: Lambert and Osborne, Sections
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 informationEXAMINATIONS 2006 SUMMER TRIMESTER. COMP103 Introduction to Data Structures and Algorithms
T E W H A R E W Ā N A N G A O T E Ū P O K O O T E I K A A M Ā U I ÎÍÏ V I C T O R I A UNIVERSITY OF WELLINGTON EXAMINATIONS 2006 SUMMER TRIMESTER COMP103 Introduction to Data Structures and Algorithms
More informationTheory Test 3A. University of Cape Town ~ Department of Computer Science. Computer Science 1016S ~ For Official Use
Please fill in your Student Number and, optionally, Name. For Official Use Student Number : Mark : Name : Marker : University of Cape Town ~ Department of Computer Science Computer Science 1016S ~ 2007
More informationMIDTERM WEEK - 9. Question 1 : Implement a MyQueue class which implements a queue using two stacks.
Ashish Jamuda Week 9 CS 331-DATA STRUCTURES & ALGORITHMS MIDTERM WEEK - 9 Question 1 : Implement a MyQueue class which implements a queue using two stacks. Solution: Since the major difference between
More informationCSE 143 Lecture 26. Advanced collection classes. (ADTs; abstract classes; inner classes; generics; iterators) read 11.1, 9.6, ,
CSE 143 Lecture 26 Advanced collection classes (ADTs; abstract classes; inner classes; generics; iterators) read 11.1, 9.6, 15.3-15.4, 16.4-16.5 slides created by Marty Stepp, adapted by Alyssa Harding
More informationITI Introduction to Computing II
ITI 1121. Introduction to Computing II Iterator 1 (part I) Marcel Turcotte School of Electrical Engineering and Computer Science Version of March 26, 2013 Abstract These lecture notes are meant to be looked
More informationIntroduction to Computing II (ITI 1121) Final Examination
Université d Ottawa Faculté de génie École de science informatique et de génie électrique University of Ottawa Faculty of Engineering School of Electrical Engineering and Computer Science Introduction
More informationITI Introduction to Computing II
ITI 1121. Introduction to Computing II Iterator 1 (part I) Marcel Turcotte School of Electrical Engineering and Computer Science Version of March 26, 2013 Abstract These lecture notes are meant to be looked
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 informationOutline. iterator review iterator implementation the Java foreach statement testing
Outline iterator review iterator implementation the Java foreach statement testing review: Iterator methods a Java iterator only provides two or three operations: E next(), which returns the next element,
More informationPrinciples of Software Construction: Objects, Design, and Concurrency. Part 1: Design for reuse. Design patterns for reuse
Principles of Software Construction: Objects, Design, and Concurrency Part 1: Design for reuse Design patterns for reuse Charlie Garrod Bogdan Vasilescu School of Computer Science 1 Administrivia Homework
More information1 Complexity (10 minutes)
Data Structures Fall 2016, Prof. Bolton Exam 1 Name: Net ID: This exam contains 8 pages (including this cover page) and 9 questions. Total of points is 100. Conditions: You are permitted writing utensils
More informationUniversity of Palestine. Final Exam 2 nd semester 2014/2015 Total Grade: 50
First Question Q1 B1 Choose the best Answer: No. of Branches (1) (10/50) 1) 2) 3) 4) Suppose we start with an empty stack and then perform the following operations: Push (A); Push (B); Pop; Push (C); Top;
More informationData structure is an organization of information, usually in memory, for better algorithm efficiency.
Lecture 01 Introduction Wednesday, 29 July 2015 12:59 pm Data structure is an organization of information, usually in memory, for better algorithm efficiency. Abstract data types (ADTs) are a model for
More informationCS171 Midterm Exam. October 29, Name:
CS171 Midterm Exam October 29, 2012 Name: You are to honor the Emory Honor Code. This is a closed-book and closed-notes exam. You have 50 minutes to complete this exam. Read each problem carefully, and
More informationTopic 6: Inner Classes
Topic 6: Inner Classes What's an inner class? A class defined inside another class Three kinds: inner classes static nested classes anonymous classes this lecture: Java mechanisms later: motivation & typical
More informationLinked Lists. Linked List Nodes. Walls and Mirrors Chapter 5 10/25/12. A linked list is a collection of Nodes: item next -3.
Linked Lists Walls and Mirrors Chapter 5 Linked List Nodes public class Node { private int item; private Node next; public Node(int item) { this(item,null); public Node(int item, Node next) { setitem(item);
More information