CE204 Data Structures and Algorithms Part 1
|
|
- Martina McKinney
- 5 years ago
- Views:
Transcription
1 CE204 Data Structures and Algorithms Part 1 11/01/2018 CE204 Part 1 1
2 Recommended Reading The most useful book for much of the material in this module is Data Structures and Algorithm Analysis in Java (2nd ed.), M.A. Weiss (Pearson, 2007) This book does not, however, cover in detail all of the Java programming material. Hence a recent Java programming text will be useful as additional reading, e.g. Java How To Program (7th ed.), H.M. Deitel & P.J. Deitel (Prentice Hall, 2007) There are many alternative programming texts if you select a different one you should ensure that it covers Java 5. 11/01/2018 CE204 Part 1 2
3 Assessment Two hour exam in May/June (70% of the module credit) Assignment 1 (10% of the module credit); to be handed out in week 17, for submission by Tuesday of week 20 Assignment 2 (10% of the module credit); to be handed out in week 22, for submission by Tuesday of week 25 Multiple-choice test (10% of the module credit) on Thursday of week 21 11/01/2018 CE204 Part 1 3
4 Linked Lists 1 A recursive data structure is a type that contains a reference or pointer to another object of the same type. The simplest example is a linked list in which each object contains a data item and a reference to the next object in the list. (The last item in the list will hold a null reference, indicating there is no next object.) 11/01/2018 CE204 Part 1 4
5 Linked Lists 2 The traditional operations associated with linked lists are cons, which takes a list and a data item and constructs a new list by adding the item to the front of the list head, which returns the item at the front of the list tail, which returns the list comprising everything but the head. 11/01/2018 CE204 Part 1 5
6 Linked Lists in Java 1 In Java we can declare a class ListCell whose members are a data item and a reference to the next element of the list. It is preferable to write head and tail as methods of the class and use a constructor instead of the cons function. On the next slide we present a class for a linked list of data items of type int. The instance variables could be made private a decision should be made based on needs of the application for which the class will be used. For example, if it is going to be necessary to change data in some of the cells the data member will need to be public, but if it is necessary to ensure that contents cannot be changed once added to the list the members should be private. 11/01/2018 CE204 Part 1 6
7 Linked Lists in Java 2 class ListCell { int data; ListCell next; public ListCell(int i, ListCell c) { data = i; next = c; public int head() { return data; public ListCell tail() { return next; 11/01/2018 CE204 Part 1 7
8 Linked Lists in Java 3 An empty list in Java would be represented by null. To create a list containing the elements 1 (at the front), 2 and 3 we could use ListCell l1 = new ListCell(3, null); ListCell l2 = new ListCell(2, l1); ListCell mylist = new ListCell(1, l2); or, more concisely, ListCell mylist = new ListCell(1, new ListCell(2, new ListCell(3, null))); 11/01/2018 CE204 Part 1 8
9 Linked Lists in Java 4 To obtain the third item in a list l we would use ListCell t1 = l.tail(); ListCell t2 = t1.tail(); int answer = t2.head(); or, more concisely, int answer = l.tail().tail().head(); Note that an exception of type NullPointerException will be thrown if the list does not contain three elements, since one of the ListCell objects (l, t1 or t2) will be null and we cannot apply methods to a null reference. 11/01/2018 CE204 Part 1 9
10 Linked Lists in Java 5 We could write a loop to find the nth item in a list l: int i; ListCell c = l; for (i = 1; i<n; i++) c = c.tail(); int answer = c.head(); Code such as this should normally be placed in a try block, with a catch block to handle any exception thrown if the list has less than n elements. 11/01/2018 CE204 Part 1 10
11 Linked Lists in Java 6 If we wish to produce a class similar to the LinkedList class provided in the collections framework, in which an empty list is an object rather than a null reference, and adding an item changes the state of a list object rather than returning a new object, we need to enclose the list cells within another class which contains a reference to the front item in the list. On the next slides we provide such a class for a list of items of type int with a constructor that creates an empty list, methods to add items to the front and to the back and a method that returns the element at location n (assuming locations are numbered starting from 0). 11/01/2018 CE204 Part 1 11
12 Linked Lists in Java 7 // LList.java class ListCell { int data; ListCell next; public ListCell(int i, ListCell c) { data = i; next = c; class ListException extends RuntimeException { 11/01/2018 CE204 Part 1 12
13 Linked Lists in Java 8 // LList.java continued public class LList { private ListCell front; public LList() { front = null; public void addtofront(int i) { front = new ListCell(i, front); 11/01/2018 CE204 Part 1 13
14 Linked Lists in Java 9 // class LList continued public void addtoback(int i) { if (front==null) front = new ListCell(i, null); else { // find back cell ListCell c = front; while (c.next!=null) c = c.next; // add new cell c.next = new ListCell(i, null); 11/01/2018 CE204 Part 1 14
15 Linked Lists in Java 10 // class LList continued public int elementat(int n) { ListCell c = front; if (n<0) throw new ListException(); for (int i = 0; i<n; i++) { if (c == null) throw new ListException(); c = c.next; if (c == null) throw new ListException(); return c.data; 11/01/2018 CE204 Part 1 15
16 Linked Lists in Java 11 If we expect to call the addtoback method frequently it will be more efficient to store in the LList class a reference to the last item in the list. Assuming that this reference is called back we could write the method in the following way. public void addtoback(int i) { if (front == null) front = back = new ListCell(i, null); else { back.next = new ListCell(i, null); back = back.next; 11/01/2018 CE204 Part 1 16
17 Linked Lists in Java 12 If we add a back variable to the LList class we must modify the constructor to initialise it to null. It is also necessary to modify the addtofront method because when an item is added to the front of an empty list it will become both the front and the back item. public void addtofront(int i) { front = new ListCell(i, front); if (back == null) back = front; 11/01/2018 CE204 Part 1 17
18 Doubly-Linked Lists 1 In a doubly-linked list each cell has references to both the next and the previous items. Use of doubly-linked lists allows efficient traversal in both directions and also efficient insertion and removal at both ends, but requires more memory space and more complex code. For example, assuming that the extra reference in the ListCell class is called prev, and that the constructor initialises this to null, a possible addtofront method is shown on the next slide. 11/01/2018 CE204 Part 1 18
19 Doubly-Linked Lists 2 // addtofront method for doubly-linked list public void addtofront(int i) { front = new ListCell(i, front); if (front.next!= null) front.next.prev = front; else back = front; 11/01/2018 CE204 Part 1 19
20 Generic Classes 1 The element type in the linked-list class that we have been developing has been int; if we wished to produce a linked list class with a different element type we could simply replace the occurrences of int with a different type. However, if we wished to use lists of more than one type of element in the same program this would involve producing two almost identical classes with different names. An alternative would be to define a list class with Object as the element type, but this would allow users to mix items of the same type in different lists and we would have to downcast when extracting items. 11/01/2018 CE204 Part 1 20
21 Generic Classes 2 You will have encountered in CE203 the use of parameterised types such as TreeSet<Integer> and Vector<String> TreeSet and Vector are generic classes. To allow the use of linked lists of different types of item it is desirable to produce a generic linked-list class; in order to do this we have to declare the class as LList<T>, where T is a type parameter which can be instantiated with any non-primitive type. Note that the type parameter does not have to be T, although it is conventional to use a single upper-case letter. E would be equal suitable (indicating element type). 11/01/2018 CE204 Part 1 21
22 Generic Classes 3 To make our linked-list class generic we need to replace all occurrences of LList by LList<T> and use the type parameter T wherever the name of the element type is needed. Since the type of the elements stored in the ListCell class will be T it is preferable to also make this class generic (it would be possible to use a ListCell class with elements of type Object, with downcasting used where appropriate). A complete version of a generic linked-list class (with a back reference) is provided on the following slides. Note that the type parameter does not appear after the method name in the declaration of the constructor but it is used when constructors are called. 11/01/2018 CE204 Part 1 22
23 Generic Classes 4 // LList.java generic version class ListCell<T> { T data; ListCell<T> next; public ListCell(T i, ListCell<T> c) { data = i; next = c; class ListException extends RuntimeException { 11/01/2018 CE204 Part 1 23
24 Generic Classes 5 // generic LList.java continued public class LList<T> { private ListCell<T> front, back; public LList() { front = back = null; public void addtofront(t i) { front = new ListCell<T>(i, front); if (back == null) back = front; 11/01/2018 CE204 Part 1 24
25 Generic Classes 6 // class LList<T> continued public void addtoback(t i) { if (front == null) front = back = new ListCell<T>(i, null); else { back.next = new ListCell<T>(i, null); back = back.next; 11/01/2018 CE204 Part 1 25
26 Generic Classes 7 // class LList<T> continued public T elementat(int n) { ListCell<T> c = front; if (n<0) throw new ListException(); for (int i = 0; i<n; i++) { if (c == null) throw new ListException(); c = c.next; if (c == null) throw new ListException(); return c.data; 11/01/2018 CE204 Part 1 26
27 Generic Methods 1 All non-static methods of a generic class can be classed as generic methods since they can be applied to any instance of the class. It is sometimes useful to be able to use generic methods outside of a generic class. Consider as an example the following simple (non-generic) method that adds multiple copies of a string to a list of strings. public static void addcopies(string s, LList<String> ll, int numcopies) { for (int i = 0; i<numcopies; i++) ll.addtoback(s); 11/01/2018 CE204 Part 1 27
28 Generic Methods 2 To allow the same method to be used for adding multiple copies of non-string objects to lists with appropriate types we might wish to make the method generic. If we simply changed the types of the first two arguments to T and LList<T> the compiler would inform us that T has not been declared we must explicitly specify that it is a type parameter by inserting <T> before the return type in the method declaration: public static <T> void addcopies(t s, LList<T> ll, int numcopies) { for (int i = 0; i<numcopies; i++) ll.addtoback(s); 11/01/2018 CE204 Part 1 28
CE204 Data Structures and Algorithms Part 2
CE204 Data Structures and Algorithms Part 2 14/01/2018 CE204 Part 2 1 Abstract Data Types 1 An abstract data type is a type that may be specified completely without the use of any programming language.
More informationCE221 Programming in C++ Part 1 Introduction
CE221 Programming in C++ Part 1 Introduction 06/10/2017 CE221 Part 1 1 Module Schedule There are two lectures (Monday 13.00-13.50 and Tuesday 11.00-11.50) each week in the autumn term, and a 2-hour lab
More informationProgramming for Mobile Computing
1/32 Programming for Mobile Computing EECS 1022 moodle.yorku.ca Drop deadline 2/32 July 22 31 During this period you can still drop the course but you will receive a W on your transcript. The W will not
More informationThe combination of pointers, structs, and dynamic memory allocation allow for creation of data structures
Data Structures in C C Programming and Software Tools N.C. State Department of Computer Science Data Structures in C The combination of pointers, structs, and dynamic memory allocation allow for creation
More informationJava How to Program, 10/e. Copyright by Pearson Education, Inc. All Rights Reserved.
Java How to Program, 10/e Copyright 1992-2015 by Pearson Education, Inc. All Rights Reserved. Data structures Collections of related data items. Discussed in depth in Chapters 16 21. Array objects Data
More informationInheritance. SOTE notebook. November 06, n Unidirectional association. Inheritance ("extends") Use relationship
Inheritance 1..n Unidirectional association Inheritance ("extends") Use relationship Implementation ("implements") What is inherited public, protected methods public, proteced attributes What is not inherited
More information(7 2) Classes: A Deeper Look D & D Chapter 9. Instructor - Andrew S. O Fallon CptS 122 (February 22, 2019) Washington State University
(7 2) Classes: A Deeper Look D & D Chapter 9 Instructor - Andrew S. O Fallon CptS 122 (February 22, 2019) Washington State University Key Concepts Composition relationship const objects const member functions
More informationLinkedList Implementation Mini-project intro
LinkedList Implementation Mini-project intro Turn in your written problems Mini-project Partner Survey: Do it by 4:00 today Reminder: Exam #2 is this Thursday In order to reduce time pressure, you optionally
More informationProgramming II (CS300)
1 Programming II (CS300) Chapter 07: Linked Lists and Iterators MOUNA KACEM mouna@cs.wisc.edu Fall 2018 Linked Lists 2 Introduction Linked List Abstract Data Type General Implementation of the ListADT
More informationITI Introduction to Computing II
index.pdf March 17, 2013 1 ITI 1121. Introduction to Computing II Marcel Turcotte School of Electrical Engineering and Computer Science Version of March 17, 2013 Definitions A List is a linear abstract
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 information2/22/2013 LISTS & TREES
LISTS & TREES Lecture 9 CS2110 Spring 2013 1 List Overview 2 Purpose Maintain an ordered collection of elements (with possible duplication) Common operations Create a list Access elements of a list sequentially
More informationPrelim One Solution. CS211 Fall Name. NetID
Name NetID Prelim One Solution CS211 Fall 2005 Closed book; closed notes; no calculators. Write your name and netid above. Write your name clearly on each page of this exam. For partial credit, you must
More informationIntroduction to Programming Using Java (98-388)
Introduction to Programming Using Java (98-388) Understand Java fundamentals Describe the use of main in a Java application Signature of main, why it is static; how to consume an instance of your own class;
More informationThe design of an ADT should evolve naturally during the problem-solving process Questions to ask when designing an ADT
Designing an ADT The design of an ADT should evolve naturally during the problem-solving process Questions to ask when designing an ADT What data does a problem require? What operations does a problem
More informationCSE115 / CSE503 Introduction to Computer Science I. Dr. Carl Alphonce 343 Davis Hall Office hours:
CSE115 / CSE503 Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours: Thursday 12:00 PM 2:00 PM Friday 8:30 AM 10:30 AM OR request appointment via e-mail
More informationJava How to Program, 10/e. Copyright by Pearson Education, Inc. All Rights Reserved.
Java How to Program, 10/e Education, Inc. All Rights Reserved. Each class you create becomes a new type that can be used to declare variables and create objects. You can declare new classes as needed;
More informationClasses and Objects 3/28/2017. How can multiple methods within a Java class read and write the same variable?
Peer Instruction 8 Classes and Objects How can multiple methods within a Java class read and write the same variable? A. Allow one method to reference a local variable of the other B. Declare a variable
More information1B1b Classes in Java Part I
1B1b Classes in Java Part I Agenda Defining simple classes. Instance variables and methods. Objects. Object references. 1 2 Reading You should be reading: Part I chapters 6,9,10 And browsing: Part IV chapter
More informationCS211 Spring 2005 Prelim 1 March 10, Solutions. Instructions
CS211 Spring 2005 Prelim 1 March 10, 2005 Solutions Instructions Write your name and Cornell netid above. There are 6 questions on 9 numbered pages. Check now that you have all the pages. Write your answers
More informationProgramming II (CS300)
1 Programming II (CS300) Chapter 07: Linked Lists MOUNA KACEM mouna@cs.wisc.edu Spring 2019 Linked Lists 2 Introduction Linked List Abstract Data Type SinglyLinkedList ArrayList Keep in Mind Introduction:
More informationQueues. CITS2200 Data Structures and Algorithms. Topic 5
CITS2200 Data Structures and Algorithms Topic 5 Queues Implementations of the Queue ADT Queue specification Queue interface Block (array) representations of queues Recursive (linked) representations of
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 information(6-1) Basics of a Queue. Instructor - Andrew S. O Fallon CptS 122 (September 26, 2018) Washington State University
(6-1) Basics of a Queue Instructor - Andrew S. O Fallon CptS 122 (September 26, 2018) Washington State University What is a Queue? 2 A linear data structure with a finite sequence of nodes, where nodes
More informationTopic 7: Algebraic Data Types
Topic 7: Algebraic Data Types 1 Recommended Exercises and Readings From Haskell: The craft of functional programming (3 rd Ed.) Exercises: 5.5, 5.7, 5.8, 5.10, 5.11, 5.12, 5.14 14.4, 14.5, 14.6 14.9, 14.11,
More informationCS 151. Linked Lists, Recursively Implemented. Wednesday, October 3, 12
CS 151 Linked Lists, Recursively Implemented 1 2 Linked Lists, Revisited Recall that a linked list is a structure that represents a sequence of elements that are stored non-contiguously in memory. We can
More informationPoints off Total off Net Score. CS 314 Final Exam Fall 2016
Points off 1 2 3 4 5 6 Total off Net Score CS 314 Final Exam Fall 2016 Your Name Your UTEID Instructions: 1. There are 6 questions on this test. 100 points available. Scores will be scaled to 300 points.
More informationImplementing a List in Java. CSC 143 Java. List Interface (review) Just an Illusion? Using an Array to Implement a List CSC
Implementing a List in Java CSC 143 Java List Implementation Using Arrays Updated with Java 5.0 Generics Reading: Ch. 13 Two implementation approaches are most commonly used for simple lists: Arrays Linked
More informationCOE318 Lecture Notes Week 10 (Nov 7, 2011)
COE318 Software Systems Lecture Notes: Week 10 1 of 5 COE318 Lecture Notes Week 10 (Nov 7, 2011) Topics More about exceptions References Head First Java: Chapter 11 (Risky Behavior) The Java Tutorial:
More information(More) Fun with Pointers and Linked Lists! CS 16: Solving Problems with Computers I Lecture #17
(More) Fun with Pointers and Linked Lists! CS 16: Solving Problems with Computers I Lecture #17 Ziad Matni Dept. of Computer Science, UCSB Administrative Homework situation: Labs: NO MORE HOMEWORK! J Lab10
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 informationCpt S 122 Data Structures. Course Review FINAL. Nirmalya Roy School of Electrical Engineering and Computer Science Washington State University
Cpt S 122 Data Structures Course Review FINAL Nirmalya Roy School of Electrical Engineering and Computer Science Washington State University Final When: Wednesday (12/12) 1:00 pm -3:00 pm Where: In Class
More informationImplementing a List in Java. CSE 143 Java. Just an Illusion? List Interface (review) Using an Array to Implement a List.
Implementing a List in Java CSE 143 Java List Implementation Using Arrays Reading: Ch. 13 Two implementation approaches are most commonly used for simple lists: Arrays Linked list Java Interface List concrete
More informationLinear Structures. Linear Structure. Implementations. Array details. List details. Operations 2/10/2013
Linear Structure Linear Structures Chapter 4 CPTR 318 Every non-empty linear structure has A unique element called first A unique element called last Every element except last has a unique successor Every
More informationAnnouncements. Prelude (2) Prelude (1) Data Structures and Information Systems Part 1: Data Structures. Lecture 6: Lists.
Announcements MODULE WEB-SITE: http://www.csc.liv.ac.uk/ michele/teaching/comp102/comp102.html FIRST ASSIGNMENT DEADLINE: Wednesday, February 1st, 14.30, LAB 7 Boxes (late submissions to be left in the
More informationCSCE 210/2201 Data Structures and Algorithms. Prof. Amr Goneid
CSCE 20/220 Data Structures and Algorithms Prof. Amr Goneid Fall 208 / Spring 209 CSCE 20/220 DATA STRUCTURES AND ALGORITHMS Prof. Amr Goneid Instructor: Prof. Amr Goneid E-mail: goneid@aucegypt.edu Office:
More informationComp 249 Programming Methodology Chapter 9 Exception Handling
Comp 249 Programming Methodology Chapter 9 Exception Handling Dr. Aiman Hanna Department of Computer Science & Software Engineering Concordia University, Montreal, Canada These slides has been extracted,
More informationCSCE 210/2201 Data Structures and Algorithms. Prof. Amr Goneid. Fall 2018
CSCE 20/220 Data Structures and Algorithms Prof. Amr Goneid Fall 208 CSCE 20/220 DATA STRUCTURES AND ALGORITHMS Dr. Amr Goneid Course Goals To introduce concepts of Data Models, Data Abstraction and ADTs
More informationAP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS
AP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS PAUL L. BAILEY Abstract. This documents amalgamates various descriptions found on the internet, mostly from Oracle or Wikipedia. Very little of this
More informationCOMP 524 Spring 2018 Midterm Thursday, March 1
Name PID COMP 524 Spring 2018 Midterm Thursday, March 1 This exam is open note, open book and open computer. It is not open people. You are to submit this exam through gradescope. Resubmissions have been
More information(5 2) Introduction to Classes in C++ Instructor - Andrew S. O Fallon CptS 122 (February 7, 2018) Washington State University
(5 2) Introduction to Classes in C++ Instructor - Andrew S. O Fallon CptS 122 (February 7, 2018) Washington State University Key Concepts Function templates Defining classes with member functions The Rule
More informationCS211 Computers and Programming Matthew Harris and Alexa Sharp July 9, Boggle
Boggle If you are not familiar with the game Boggle, the game is played with 16 dice that have letters on all faces. The dice are randomly deposited into a four-by-four grid so that the players see the
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 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 informationWelcome to CSL 201 Data Structures
Welcome to CSL 201 Data Structures Narayanan (CK) C Krishnan Department of Computer Science and Engineering IIT Ropar Administrative Trivia Course Structure n 3-0-4 (5 credits) Class Timings n Monday 9.55-10.45
More informationPrelim 1 Solutions. CS 2110, March 10, 2015, 5:30 PM Total Question True False. Loop Invariants Max Score Grader
Prelim 1 Solutions CS 2110, March 10, 2015, 5:30 PM 1 2 3 4 5 Total Question True False Short Answer Recursion Object Oriented Loop Invariants Max 20 15 20 25 20 100 Score Grader The exam is closed book
More informationPrelim 1. CS 2110, October 1, 2015, 5:30 PM Total Question Name True Short Testing Strings Recursion
Prelim 1 CS 2110, October 1, 2015, 5:30 PM 0 1 2 3 4 5 Total Question Name True Short Testing Strings Recursion False Answer Max 1 20 36 16 15 12 100 Score Grader The exam is closed book and closed notes.
More informationProgramming 2. Topic 8: Linked Lists, Basic Searching and Sorting
RMIT School of Computer Science and Information Technology Programming 2 Topic 8: Linked Lists, Basic Searching and Sorting Lecture Slides COPYRIGHT 2008 RMIT University. Original content by: Peter Tilmanis,
More informationUMBC CMSC 331 Final Exam
UMBC CMSC 331 Final Exam Name: UMBC Username: You have two hours to complete this closed book exam. We reserve the right to assign partial credit, and to deduct points for answers that are needlessly wordy
More informationCSCI 102L - Data Structures Midterm Exam #1 Fall 2011
Print Your Name: Page 1 of 8 Signature: Aludra Loginname: CSCI 102L - Data Structures Midterm Exam #1 Fall 2011 (10:00am - 11:12am, Wednesday, October 5) Instructor: Bill Cheng Problems Problem #1 (24
More information(12-1) OOP: Polymorphism in C++ D & D Chapter 12. Instructor - Andrew S. O Fallon CptS 122 (April 3, 2019) Washington State University
(12-1) OOP: Polymorphism in C++ D & D Chapter 12 Instructor - Andrew S. O Fallon CptS 122 (April 3, 2019) Washington State University Key Concepts Polymorphism virtual functions Virtual function tables
More informationDeclarations and Access Control SCJP tips
Declarations and Access Control www.techfaq360.com SCJP tips Write code that declares, constructs, and initializes arrays of any base type using any of the permitted forms both for declaration and for
More informationPages and 68 in [JN] conventions for using exceptions in Java. Chapter 8 in [EJ] guidelines for more effective use of exceptions.
CS511, HANDOUT 12, 7 February 2007 Exceptions READING: Chapter 4 in [PDJ] rationale for exceptions in general. Pages 56-63 and 68 in [JN] conventions for using exceptions in Java. Chapter 8 in [EJ] guidelines
More informationDynamic Data Structures
Dynamic Data Structures We have seen that the STL containers vector, deque, list, set and map can grow and shrink dynamically. We now examine how some of these containers can be implemented in C++. To
More informationUMBC CMSC 331 Final Exam
UMBC CMSC 331 Final Exam Name: UMBC Username: You have two hours to complete this closed book exam. We reserve the right to assign partial credit, and to deduct points for answers that are needlessly wordy
More information16-Dec-10. Consider the following method:
Boaz Kantor Introduction to Computer Science IDC Herzliya Exception is a class. Java comes with many, we can write our own. The Exception objects, along with some Java-specific structures, allow us to
More informationCS 211 Programming Practicum Spring 2018
Due: Thursday, 4/5/18 at 11:59 pm Infix Expression Evaluator Programming Project 5 For this lab, write a C++ program that will evaluate an infix expression. The algorithm REQUIRED for this program will
More information1 Inheritance (8 minutes, 9 points)
Name: Career Account ID: Recitation#: 1 CS180 Spring 2011 Exam 2, 6 April, 2011 Prof. Chris Clifton Turn Off Your Cell Phone. Use of any electronic device during the test is prohibited. Time will be tight.
More information2. List Implementations (a) Class Templates (b) Contiguous (c) Simply Linked (d) Simply Linked with Position Pointer (e) Doubly Linked
Chapter 6 LISTS AND STRINGS 1. List Specifications 2. List Implementations (a) Class Templates (b) Contiguous (c) Simply Linked (d) Simply Linked with Position Pointer (e) Doubly Linked 3. Strings 4. Application:
More informationException Handling. Sometimes when the computer tries to execute a statement something goes wrong:
Exception Handling Run-time errors The exception concept Throwing exceptions Handling exceptions Declaring exceptions Creating your own exception Ariel Shamir 1 Run-time Errors Sometimes when the computer
More informationCA341 - Comparative Programming Languages
CA341 - Comparative Programming Languages David Sinclair Dynamic Data Structures Generally we do not know how much data a program will have to process. There are 2 ways to handle this: Create a fixed data
More informationCS427 Inheritance and Virtual Functions. Linked lists. 2/27. 01Replacement.cpp link! i n t GetY ( void ) { return ( y ) ; } ;
Inheritance and Virtual Functions. Linked lists. CS427 Lecture 12.2, 11am, 26th March 2012 In today s class 1 Recall... Inheritance 2 3 4 Limitations of arrays 5 Linked lists 6 7 8 Further linked list
More informationCS 113 PRACTICE FINAL
CS 113 PRACTICE FINAL There are 13 questions on this test. The value of each question is: 1-10 multiple choice (4 pt) 11-13 coding problems (20 pt) You may get partial credit for questions 11-13. If you
More informationException Handling. Run-time Errors. Methods Failure. Sometimes when the computer tries to execute a statement something goes wrong:
Exception Handling Run-time errors The exception concept Throwing exceptions Handling exceptions Declaring exceptions Creating your own exception 22 November 2007 Ariel Shamir 1 Run-time Errors Sometimes
More informationDynamic arrays / C Strings
Dynamic arrays / C Strings Dynamic arrays syntax why use C strings Ex: command line arguments Call-by-pointer Dynamic Arrays / C Strings [Bono] 1 Announcements Final exam: Tue, 5/8, 8 10 am SGM 124 and
More informationConverting Collections to Arrays. A Bad Approach to Array Conversion. A Better Approach to Array Conversion. public Object[] toarray();
Converting Collections to Arrays Every Java collection can be converted to an array This is part of the basic Collection interface The most elementary form of this method produces an array of base-type
More informationPractice exam for CMSC131-04, Fall 2017
Practice exam for CMSC131-04, Fall 2017 Q1 makepalindrome - Relevant topics: arrays, loops Write a method makepalidrome that takes an int array, return a new int array that contains the values from the
More informationAnnouncements. CS18000: Problem Solving And Object-Oriented Programming
Announcements Exam 1 Monday, February 28 Wetherill 200, 4:30pm-5:20pm Coverage: Through Week 6 Project 2 is a good study mechanism Final Exam Tuesday, May 3, 3:20pm-5:20pm, PHYS 112 If you have three or
More informationImplementation. Learn how to implement the List interface Understand the efficiency trade-offs between the ArrayList and LinkedList implementations
Readings List Implementations Chapter 20.2 Objectives Learn how to implement the List interface Understand the efficiency trade-offs between the ArrayList and LinkedList implementations Additional references:
More informationTopic 10: The Java Collections Framework (and Iterators)
Topic 10: The Java Collections Framework (and Iterators) A set of interfaces and classes to help manage collections of data. Why study the Collections Framework? very useful in many different kinds of
More informationProgramming - 2. Common Errors
Common Errors There are certain common errors and exceptions which beginners come across and find them very annoying. Here we will discuss these and give a little explanation of what s going wrong and
More informationCS365 Midterm -- Spring 2019
CS365 Midterm -- Spring 2019 1. This exam is closed-note, closed-book. 2. You must answer all of the questions. 3. The exam has 120 points and you will be scored out of 120 points. For example, if you
More informationCMPSCI 187 Midterm 1 (Feb 17, 2016)
CMPSCI 187 Midterm 1 (Feb 17, 2016) Instructions: This is a closed book, closed notes exam. You have 120 minutes to complete the exam. The exam has 10 pages printed on double sides. Be sure to check both
More informationIntroduction to Computer Science II CS S-20 Linked Lists III
Introduction to Computer Science II CS112-2012S-20 Linked Lists III David Galles Department of Computer Science University of San Francisco 20-0: Linked List Previous Practical Example: removeat(int index)
More informationCMSC 330: Organization of Programming Languages
CMSC 330: Organization of Programming Languages CMSC330 Fall 2017 OCaml Data Types CMSC330 Fall 2017 1 OCaml Data So far, we ve seen the following kinds of data Basic types (int, float, char, string) Lists
More informationcs Java: lecture #6
cs3101-003 Java: lecture #6 news: homework #5 due today little quiz today it s the last class! please return any textbooks you borrowed from me today s topics: interfaces recursion data structures threads
More informationLinked lists. Insert Delete Lookup Doubly-linked lists. Lecture 6: Linked Lists
Linked lists Insert Delete Lookup Doubly-linked lists Lecture 6: Linked Lists Object References When you declare a variable of a non-primitive type you are really declaring a reference to that object String
More informationCS 211 Programming Practicum Spring 2017
Due: Tuesday, 3/28/17 at 11:59 pm Infix Expression Evaluator Programming Project 5 For this lab, write a JAVA program that will evaluate an infix expression. The algorithm REQUIRED for this program will
More informationAgenda CS121/IS223. Reminder. Object Declaration, Creation, Assignment. What is Going On? Variables in Java
CS121/IS223 Object Reference Variables Dr Olly Gotel ogotel@pace.edu http://csis.pace.edu/~ogotel Having problems? -- Come see me or call me in my office hours -- Use the CSIS programming tutors Agenda
More informationLecture 20. Java Exceptional Event Handling. Dr. Martin O Connor CA166
Lecture 20 Java Exceptional Event Handling Dr. Martin O Connor CA166 www.computing.dcu.ie/~moconnor Topics What is an Exception? Exception Handler Catch or Specify Requirement Three Kinds of Exceptions
More informationJAVA BASICS II. Example: FIFO
JAVA BASICS II Example: FIFO To show how simple data structures are built without pointers, we ll build a doubly-linked list ListItem class has some user data first refers to that ListItem object at the
More informationTwo Types of Types. Primitive Types in Java. Using Primitive Variables. Class #07: Java Primitives. Integer types.
Class #07: Java Primitives Software Design I (CS 120): M. Allen, 13 Sep. 2018 Two Types of Types So far, we have mainly been dealing with objects, like DrawingGizmo, Window, Triangle, that are: 1. Specified
More informationComputer Science E-119 Fall Problem Set 3. Due before lecture on Wednesday, October 31
Due before lecture on Wednesday, October 31 Getting Started To get the files that you will need for this problem set, log into nice.harvard.edu and enter the following command: gethw 3 This will create
More informationCSE 431S Type Checking. Washington University Spring 2013
CSE 431S Type Checking Washington University Spring 2013 Type Checking When are types checked? Statically at compile time Compiler does type checking during compilation Ideally eliminate runtime checks
More information} Evaluate the following expressions: 1. int x = 5 / 2 + 2; 2. int x = / 2; 3. int x = 5 / ; 4. double x = 5 / 2.
Class #10: Understanding Primitives and Assignments Software Design I (CS 120): M. Allen, 19 Sep. 18 Java Arithmetic } Evaluate the following expressions: 1. int x = 5 / 2 + 2; 2. int x = 2 + 5 / 2; 3.
More informationCSC Java Programming, Fall Java Data Types and Control Constructs
CSC 243 - Java Programming, Fall 2016 Java Data Types and Control Constructs Java Types In general, a type is collection of possible values Main categories of Java types: Primitive/built-in Object/Reference
More informationCS159. Nathan Sprague
CS159 Nathan Sprague What s wrong with the following code? 1 /* ************************************************** 2 * Return the mean, or -1 if the array has length 0. 3 ***************************************************
More informationObject Oriented Programming
Object Oriented Programming Java lecture (10.2) Exception Handling 1 Outline Throw Throws Finally 2 Throw we have only been catching exceptions that are thrown by the Java run-time system. However, it
More information(8 1) Container Classes & Class Templates D & D Chapter 18. Instructor - Andrew S. O Fallon CptS 122 (October 8, 2018) Washington State University
(8 1) Container Classes & Class Templates D & D Chapter 18 Instructor - Andrew S. O Fallon CptS 122 (October 8, 2018) Washington State University Key Concepts Class and block scope Access and utility functions
More informationLinear Structures. Linear Structure. Implementations. Array details. List details. Operations 4/18/2013
Linear Structure Linear Structures Chapter 4 CPTR 318 Every non-empty linear structure has A unique element called first A unique element called last Every element except last has a unique successor Every
More informationCSE 143. Linked Lists. Linked Lists. Manipulating Nodes (1) Creating Nodes. Manipulating Nodes (3) Manipulating Nodes (2) CSE 143 1
CSE 143 Linked Lists [Chapter 4; Chapter 6, pp. 265-271] Linked Lists A linked list is a collection of dynamically allocated nodes Each node contains at least one member (field) that points to another
More informationRecreation. MyClass.mogrify(new int[] { 1, 2, 4, 6 }));
A student adds a JUnit test: Recreation @Test public void mogrifytest() { assertequals("mogrify fails", new int[] { 2, 4, 8, 12 }, MyClass.mogrify(new int[] { 1, 2, 4, 6 })); } The test always seems to
More informationCS121/IS223. Object Reference Variables. Dr Olly Gotel
CS121/IS223 Object Reference Variables Dr Olly Gotel ogotel@pace.edu http://csis.pace.edu/~ogotel Having problems? -- Come see me or call me in my office hours -- Use the CSIS programming tutors CS121/IS223
More information6.005 Elements of Software Construction
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. Today s Topics
More informationEngineering Robust Server Software
Engineering Robust Server Software Exceptions Exceptions Handling problems: exceptions C++ Java temp-and-swap RAII Smart Pointers finally specifications finalizers (and why they are not what you need for
More informationCE221 Programming in C++ Part 2 References and Pointers, Arrays and Strings
CE221 Programming in C++ Part 2 References and Pointers, Arrays and Strings 19/10/2017 CE221 Part 2 1 Variables and References 1 In Java a variable of primitive type is associated with a memory location
More informationCS 3 Introduction to Software Engineering. 3: Exceptions
CS 3 Introduction to Software Engineering 3: Exceptions Questions? 2 Objectives Last Time: Procedural Abstraction This Time: Procedural Abstraction II Focus on Exceptions. Starting Next Time: Data Abstraction
More information12/22/11. Java How to Program, 9/e. public must be stored in a file that has the same name as the class and ends with the.java file-name extension.
Java How to Program, 9/e Education, Inc. All Rights Reserved. } Covered in this chapter Classes Objects Methods Parameters double primitive type } Create a new class (GradeBook) } Use it to create an object.
More informationAdvanced Java Concepts Unit 2: Linked Lists.
Advanced Java Concepts Unit 2: Linked Lists. The List interface defines the structure of a linear collection. Here are some of its methods. boolean add( E element ) Appends the element to the end of the
More information