CT 229 Object-Oriented Programming Continued
|
|
- Myron Robertson
- 6 years ago
- Views:
Transcription
1 CT 229 Object-Oriented Programming Continued 24/11/2006 CT229
2 Summary - Inheritance Inheritance is the ability of a class to use the attributes and methods of another class while adding its own functionality extends keyword in class definition identifies the base class of the new class being defined Derived class inherits public and protected variables and methods of base class, as if they were its own Derived class can override methods of the base class Private methods and variables of base class not directly accessible by derived class (access methods must be used) The keyword super can be used to access variables and methods of its superclass. super.variablename; super.methodname(); ( Example super.getfulldetails() ) 24/11/2006 CT229 1
3 Visibility Modifiers Modifier Same Class Same Package Subclass Everyone public YES YES YES YES protected YES YES YES default YES YES private YES 24/11/2006 CT229 2
4 Final Keyword You cannot subclass a final class public final class Employee { I could not write a class that extends Employee (Salesman) You cannot overwrite a final method If I declared the method getfulldetails() in Employee.java to be final then Salesman.java could not override this method public final string getfulldetails A final variable is a constant final double temperature = 32.23; If you mark a variable of reference type (that is, any class type) as final, that variable cannot refer to any other object. However, you can change the object s contents, because only the reference itself is final. 24/11/2006 CT229 3
5 Polymorphism Polymorphism is the capability of an action or method to perform different operations depending on the object that it is acting upon Example: Employee[] staff = new Employee[10]; staff[0] = new Manager(); staff[1] = new Salesman(); staff[2] = new Secretary(); 24/11/2006 CT229 4
6 The instanceof Operator Consider the following method public double calculatechristmasbonus(employee employee){ Assume the Christmas Bonus received depends on the type of employee you are. For example a manager would receive 1000, while a poor engineer may only receive 100 The method takes an parameter of type employee but it could be a manager or an engineer. How do I find out? public double calculatechristmasbonus(employee employee){ if (employee instanceof Manager) return 1000; else if (employee instanceof Engineer) return 100; 24/11/2006 CT229 5
7 Casting Objects Use instanceof to test the type of an object Restore full functionality of an object by casting (for example if the Manager class implemented a method that was specific to that class you would have to cast the object to a Manager) For example if (employee instanceof Manager) Manager manager = (Manager) employee; 24/11/2006 CT229 6
8 Abstract Classes Usually, after defining a class, you create instances of it Some classes are so general they will be defined without the intention of creating instances of them They are base classes for other derived classes E.g. may have a common base class Animal for classes Dog, Cat and Bear, but every object we create will be a Dog, Cat or Bear -- none will be the 'generic animal Also we can create a manager, engineer, secretary but not the generic employee. To declare a class as abstract, use abstract keyword Compiler error if you try to create an object of class: e.g. Animal a = new Animal( ); // ERROR 24/11/2006 CT229 7
9 Abstract Classes Example public abstract class Animal { public abstract void sayhello(); public void saybye() { System.out.println("Bye from Animal"); Abstract classes and methods force prototype standards to be followed (ie. they provide templates). For example any class that extends the Animal class must implement the sayhello method or else declare it as an abstract method. Notice that an Abstract class can have concrete methods 24/11/2006 CT229 8
10 Interface Java only allows for single inheritance. A class can only inherit attributes and methods from one other class To tie elements of different classes together java uses an interface An interface is like an abstract class, but: does not have any instance variables does not have any default method implementations To define: Keyword interface (rather than class) Contains set of public abstract methods (abstract => no body supplied for methods) All variables should be static final Essentially, any class the implements the interface must implement its set of public methods Interface is implemented in a class definition: public class <class-name> implements <iface-name> {... 24/11/2006 CT229 9
11 Interface public class Cat implements Animal{ public interface Animal { public void sayhello(); public void saybye(); public void sayhello() { System.out.println("Hello from the cat"); public void saybye() { System.out.println("Goodbye from the Cat"); Any class that implements Animal must implement each method within animal. 24/11/2006 CT229 10
12 Using Multiple Interfaces public interface Animal { public void sayhello(); public interface FarmWorker { public void jobtitle(); public class Cow implements Animal, FarmWorker{ public void sayhello() { System.out.println("Hello from the cow"); public void jobtitle() { System.out.println("Provision of Milk"); 24/11/2006 CT229 11
13 Principles of Object-Oriented Programming Abstraction Subdivide a complicated problem into it s constituent parts and describe these parts in simple, precise language. Typically, describing parts of the system involves naming the different parts and describing their functionality (Interface). Encapsulation The different components of a software system should implement an abstraction, without revealing the internal details of the implementation. Encapsulation is the ability of an object to place a boundary around its attributes and methods. Programs written in older languages suffered from side effects where variables sometimes had their contents changed or reused in unexpected ways. Object variables and certain methods can be hidden completely from external access. You are in complete control of specifying how you code should be utilised. Modularity An organising structure where the different units of a software project are divided into separate functional units. Promotes the reuse of code 24/11/2006 CT229 12
14 CT 229 Stacks and Queues 24/11/2006 CT229
15 Abstract Data Type Remember the idea of abstraction from the previous slides When this concept is applied to the design of data structures it gives rise to abstract data types (ADTs) An abstract model of a data structure, that specifies Data stored Operations that may be performed on data Types of parameters for the operations Specifies what each operation does, but not how In Java, this corresponds naturally to an Interface Definition An ADT is realised as a concrete data structure In Java, this is a class that implements the interface 24/11/2006 CT229 14
16 Overview Stacks and Queues : linear ordered list ADTs Stack: Last In, First Out: Items can only enter/leave via the top Push and Pop to add and remove Example Applications: Queue: Processing nested structures Undo operation in editor First In, First Out: Items enter at the rear, leave at the front Enqueue and Dequeue to add and remove Example Applications: Ensuring 'fair treatment' to each of a list of pending tasks (first come first served) 24/11/2006 CT229 15
17 Stack ADT Stack is a last in, first out list. No sort order assumed. Objects: A finite sequence of elements of the same type. Operations: n: Object s: Stack b: Boolean value s.push(n) s.pop() n s.top( ) n s.isempty( ) b s.isfull( ) b Place item n on to top of stack Remove top item from stack and returns it Examine the top item on stack without removing it Returns b = True if stack is empty Returns b = True if stack is full (relevant if it has limited storage) 24/11/2006 CT229 16
18 Stack Interface in Java Note: Built-in Stack class: java.util.stack Nonetheless, we will make our own Stack.java: public interface Stack { public void push(object n); public Object pop(); public Object top(); public boolean isempty(); public boolean isfull(); Other operations: size(); makeempty() Can implement this interface using array, linked list or other storage type 24/11/2006 CT229 17
19 Stack Array Implementation Index s Consider stack implemented as an array with indexes [0..N-1] Need to maintain a variable, numitems, which counts the number of items in the stack. numitems = 0 => stack is empty numitems = N => stack is full Also necessary to know the index of the top item and the index of the bottom item Two possibilities: (1) Top of stack is first index of array (2) Top of stack is last index of array 24/11/2006 CT229 18
20 Stack Array Implementation Index N-1 s Bottom Top Of these two possibilities, (2) is the more efficient As both Push and Pop occur at the top of the stack, it is better to have room at this end. The index of Top therefore holds the value numitems - 1 With possibility (1), items would have to be shuffled up and down the stack. 24/11/2006 CT229 19
21 ArrayStack.java An array-based stack implementation import javax.swing.joptionpane; public class ArrayStack implements Stack { protected int capacity; protected static final int CAPACITY = 1000; protected Object elements[]; protected int top = -1; // The actual capacity of the stack array // default array capacity // array used to implement the stack // index for the top of the stack public ArrayStack() { // default constructor: creates stack with default capacity capacity = CAPACITY; elements = new Object[capacity]; public ArrayStack(int cap) { // this constructor allows you to specify capacity of stack capacity = cap; elements = new Object[capacity]; 24/11/2006 CT229 20
22 ArrayStack.java push The method push should allow a user to place an object onto the stack public void push (Object element) { top++; elements[top] = element; 24/11/2006 CT229 21
23 ArrayStack.java push What if the stack is already full when we push a new element on? public void push(object element) { if (isfull()) { JOptionPane.showMessageDialog(null, "ERROR: stack is full."); return; top++; elements[top] = element; public boolean isfull() { return (top == capacity-1); 24/11/2006 CT229 22
24 ArrayStack.java pop public Object pop() { Object element; if (isempty()) { JOptionPane.showMessageDialog(null, "ERROR: stack is empty."); return null; element = elements[top]; elements[top] = null; top--; return element; public boolean isempty() { return (top < 0); 24/11/2006 CT229 23
25 ArrayStack.java top public Object top() { if (isempty()) { JOptionPane.showMessageDialog(null, "ERROR: stack is empty."); return null; return elements[top]; 24/11/2006 CT229 24
26 Using ArrayStack.java import javax.swing.joptionpane; public class StackTest { public static void main(string[] args) { // Create a Stack ArrayStackStack s = new ArrayStack(); time"); // Put some strings onto the stack JOptionPane.showMessageDialog(null, "About to push words onto stack: \nonce upon a s.push("once"); s.push("upon"); s.push("a"); s.push("time"); // Now pop them from the stack JOptionPane.showMessageDialog(null, "About to pop words from stack..."); while(! s.isempty()) { String word = (String)s.pop(); // Note: have to cast Objects popped to String JOptionPane.showMessageDialog(null, "Word popped: " + word); 24/11/2006 CT229 25
27 Queue ADT A Queue is a first-in, first out list. No sort order assumed. Objects: A finite sequence of elements of the same type. Front item has been in the queue longest; rear item entered the queue most recently Operations: e: Object q: Queue b: Boolean value enqueue(e) Place e at rear of q, assuming room dequeue e Remove front item from q and return it front( ) Return front element without removing it isempty( ) b Returns true if queue is empty isfull( ) b Returns true if queue is full 24/11/2006 CT229 26
28 Queue Interface in Java Queue.java: public interface Queue { public void enqueue(object n); public Object dequeue(); public boolean isempty(); public boolean isfull(); public Object front(); Other operations: size(); makeempty() Again, can implement this interface using various storage types We will use an array: ArrayQueue.java 24/11/2006 CT229 27
29 Queue Array Implementation With array implementation, items must be shuffled towards the front after a dequeue Note that with the array implementation, once Rear becomes equal to N-1 no further items can be enqueued (array space limitation) q Front Rear n = dequeue( ) ; enqueue (8); n = dequeue( ); n = dequeue( ); q /11/2006 CT229 28
30 ArrayQueue.java import javax.swing.joptionpane; public class ArrayQueue implements Queue { protected Object elements[]; protected int rear = -1; protected int capacity; public static final int CAPACITY = 1000; // array used to implement the Queue // index for the rear of the Queue // The actual capacity of the Queue array // default array capacity public ArrayQueue() { // default constructor: creates Queue with default capacity capacity = CAPACITY; elements = new Object[capacity]; public ArrayQueue(int cap) { // this constructor allows you to specify capacity capacity = cap; elements = new Object[capacity]; 24/11/2006 CT229 29
31 ArrayQueue.java public void enqueue(object element) { if (isfull()) { JOptionPane.showMessageDialog(null, "ERROR: Queue is full."); return; elements[++rear] = element; 24/11/2006 CT229 30
32 ArrayQueue.java public Object dequeue() { Object element; if (isempty()) { JOptionPane.showMessageDialog(null, "ERROR: elementsueue is empty."); return null; element = elements[0]; // shuffle all other elements to the front for (int i=0; i<rear; i++) elements[i] = elements[i+1]; elements[rear] = null; rear--; return element; 24/11/2006 CT229 31
33 ArrayQueue.java public Object front() { if (isempty()) { JOptionPane.showMessageDialog(null, "ERROR: Stack is empty."); return null; return elements[0]; 24/11/2006 CT229 32
34 import javax.swing.joptionpane; Using ArrayQueue.java public class QueueTest { public static void main(string[] args) { // Create a Queue ArrayQueue q = new ArrayQueue(); // Put some strings onto the queue JOptionPane.showMessageDialog(null, "About to enqueue words onto queue: \nthe end is nigh!"); q.enqueue("the"); q.enqueue("end"); q.enqueue("is"); q.enqueue("nigh!"); // Now dequeue them from the queue JOptionPane.showMessageDialog(null, "About to dequeue the words..."); while(! q.isempty()) { String word = (String)q.dequeue(); // Note: have to cast Objects popped to String JOptionPane.showMessageDialog(null, "Word dequeued: " + word); System.exit(0); 24/11/2006 CT229 33
35 End of Semester 1Material End of Semester 1 Enjoy the Christmas Break! 24/11/2006 CT229 34
Stacks. Stacks. Main stack operations. The ADT Stack stores arbitrary objects. Insertions and deletions follow the last-in first-out (LIFO) principle.
Stacks 1 Stacks The ADT Stack stores arbitrary objects. Insertions and deletions follow the last-in first-out (LIFO) principle. 2 Main stack operations Insertion and removal are defined by: push(e): inserts
More informationInheritance. Transitivity
Inheritance Classes can be organized in a hierarchical structure based on the concept of inheritance Inheritance The property that instances of a sub-class can access both data and behavior associated
More informationData Abstraction and Specification of ADTs
CITS2200 Data Structures and Algorithms Topic 4 Data Abstraction and Specification of ADTs Example The Reversal Problem and a non-adt solution Data abstraction Specifying ADTs Interfaces javadoc documentation
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 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 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 informationOutline and Reading. The Stack ADT ( 2.1.1) Applications of Stacks ( 2.1.1) Array-based implementation ( 2.1.1) Growable array-based stack ( 1.
Stacks Outline and Reading The Stack ADT ( 2.1.1) Applications of Stacks ( 2.1.1) Array-based implementation ( 2.1.1) Growable array-based stack ( 1.5) Stacks 2 Abstract Data Types (ADTs) An abstract data
More informationObject Oriented Programming: In this course we began an introduction to programming from an object-oriented approach.
CMSC 131: Chapter 28 Final Review: What you learned this semester The Big Picture Object Oriented Programming: In this course we began an introduction to programming from an object-oriented approach. Java
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 informationCS/ENGRD 2110 SPRING Lecture 7: Interfaces and Abstract Classes
CS/ENGRD 2110 SPRING 2019 Lecture 7: Interfaces and Abstract Classes http://courses.cs.cornell.edu/cs2110 1 Announcements 2 A2 is due Thursday night (14 February) Go back to Lecture 6 & discuss method
More informationAbstract Data Types. Abstract Data Types
Abstract Data Types Wolfgang Schreiner Research Institute for Symbolic Computation (RISC) Johannes Kepler University, Linz, Austria Wolfgang.Schreiner@risc.jku.at http://www.risc.jku.at Wolfgang Schreiner
More informationCMP Points Total Midterm Spring Version (16 Points) Multiple Choice:
CMP-338 106 Points Total Midterm Spring 2017 Version 1 Instructions Write your name and version number on the top of the yellow paper. Answer all questions on the yellow paper. One question per page. Use
More informationDay 6. COMP1006/1406 Summer M. Jason Hinek Carleton University
Day 6 COMP1006/1406 Summer 2016 M. Jason Hinek Carleton University today s agenda assignments Assignment 3 is due on Monday a quick look back abstract classes and interfaces casting objects abstract data
More informationInterfaces & Generics
Interfaces & Generics CSC207 Winter 2018 The Programming Interface The "user" for almost all code is a programmer. That user wants to know:... what kinds of object your class represents... what actions
More informationcsci 210: Data Structures Stacks and Queues
csci 210: Data Structures Stacks and Queues 1 Summary Topics Stacks and Queues as abstract data types ( ADT) Implementations arrays linked lists Analysis and comparison Applications: searching with stacks
More informationITI Introduction to Computing II
ITI 1121. Introduction to Computing II Queues ArrayQueue Marcel Turcotte School of Electrical Engineering and Computer Science Version of March 10, 2014 Abstract These lecture notes are meant to be looked
More informationStacks Goodrich, Tamassia, Goldwasser Stacks
Presentation for use with the textbook Data Structures and Algorithms in Java, 6 th edition, by M. T. Goodrich, R. Tamassia, and M. H. Goldwasser, Wiley, 2014 Stacks Stacks 1 The Stack ADT The Stack ADT
More informationPlease note that if you write the mid term in pencil, you will not be allowed to submit a remark request.
University of Toronto CSC148 Introduction to Computer Science Fall 2001 Mid Term Test Section L5101 Duration: 50 minutes Aids allowed: none Make sure that your examination booklet has 8 pages (including
More informationCPSC 221: Algorithms and Data Structures Lecture #1: Stacks and Queues
CPSC 221: Algorithms and Data Structures Lecture #1: Stacks and Queues Alan J. Hu (Slides borrowed from Steve Wolfman) Be sure to check course webpage! http://www.ugrad.cs.ubc.ca/~cs221 1 Lab 1 is available.
More informationCPSC 221: Algorithms and Data Structures ADTs, Stacks, and Queues
CPSC 221: Algorithms and Data Structures ADTs, Stacks, and Queues Alan J. Hu (Slides borrowed from Steve Wolfman) Be sure to check course webpage! http://www.ugrad.cs.ubc.ca/~cs221 1 Lab 1 available very
More informationCOMP 213 Advanced Object-oriented Programming Lecture 8 The Queue ADT (cont.)
COMP 213 Advanced Object-oriented Programming Lecture 8 The Queue ADT (cont.) Recall: The Queue ADT A data structure in which elements enter at one end and are removed from the opposite end is called a
More informationCSE Data Structures and Algorithms... In Java! Stacks. CSE2100 DS & Algorithms 1
CSE 2100 Data Structures and Algorithms... In Java Stacks 1 What is Stack A stack is a collection of objects that are inserted and removed according to the last-in, first-out (LIFO) principle. Internet
More information1/18/12. Chapter 5: Stacks, Queues and Deques. Stacks. Outline and Reading. Nancy Amato Parasol Lab, Dept. CSE, Texas A&M University
Chapter 5: Stacks, ueues and Deques Nancy Amato Parasol Lab, Dept. CSE, Texas A&M University Acknowledgement: These slides are adapted from slides provided with Data Structures and Algorithms in C++, Goodrich,
More informationC++ Inheritance and Encapsulation
C++ Inheritance and Encapsulation Private and Protected members Inheritance Type Public Inheritance Private Inheritance Protected Inheritance Special method inheritance 1 Private Members Private members
More informationStacks Goodrich, Tamassia
Stacks 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 conditions associated with operations Example:
More informationChapter 13: Collections Lab Exercises
Chapter 13: Collections Lab Exercises Topics Linked Lists Queues Stacks Lab Exercises Linked List of Integers Recursive Processing of Linked List Linked List of Objects Doubly Linked Lists An Array Queue
More informationCS/ENGRD 2110 FALL Lecture 7: Interfaces and Abstract Classes
CS/ENGRD 2110 FALL 2017 Lecture 7: Interfaces and Abstract Classes http://courses.cs.cornell.edu/cs2110 1 Announcements 2 A2 is due tomorrow night (17 February) Get started on A3 a method every other day.
More informationStack ADT. ! push(x) puts the element x on top of the stack! pop removes the topmost element from the stack.
STACK Stack ADT 2 A stack is an abstract data type based on the list data model All operations are performed at one end of the list called the top of the stack (TOS) LIFO (for last-in first-out) list is
More informationData Structures and Algorithms Design Goals Implementation Goals Design Principles Design Techniques. Version 03.s 2-1
Design Principles Data Structures and Algorithms Design Goals Implementation Goals Design Principles Design Techniques 2-1 Data Structures Data Structure - A systematic way of organizing and accessing
More informationLecture 6. COMP1006/1406 (the OOP course) Summer M. Jason Hinek Carleton University
Lecture 6 COMP1006/1406 (the OOP course) Summer 2014 M. Jason Hinek Carleton University today s agenda assignments A1,A2,A3 are all marked A4 marking just started A5 is due Friday, A6 is due Monday a quick
More information== isn t always equal?
== isn t always equal? In Java, == does the expected for primitives. int a = 26; int b = 26; // a == b is true int a = 13; int b = 26; // a == b is false Comparing two references checks if they are pointing
More informationJAVA NOTES DATA STRUCTURES AND ALGORITHMS
79 JAVA NOTES DATA STRUCTURES AND ALGORITHMS Terry Marris July 2001 11 QUEUE IMPLEMENTATION - ARRAYS 11.1 LEARNING OUTCOMES By the end of this lesson the student should be able to describe how an array
More informationObject Oriented Programming. Java-Lecture 11 Polymorphism
Object Oriented Programming Java-Lecture 11 Polymorphism Abstract Classes and Methods There will be a situation where you want to develop a design of a class which is common to many classes. Abstract class
More informationCSCD 326 Data Structures I Queues
CSCD 326 Data Structures I Queues 1 Linked List Queue Implementation Diagram Front Back A B C D 0 6 public interface QueueInterface { Queue Interface public boolean isempty(); // Determines whether
More informationChapter 2. Stack & Queues. M hiwa ahmad aziz
. Chapter 2 Stack & Queues www.raparinweb.com M hiwa ahmad aziz 1 Stack A stack structure with a series of data elements that Allows access to only the last item inserted. An item is inserted or removed
More informationOverview. Lecture 7: Inheritance and GUIs. Inheritance. Example 9/30/2008
Overview Lecture 7: Inheritance and GUIs Written by: Daniel Dalevi Inheritance Subclasses and superclasses Java keywords Interfaces and inheritance The JComponent class Casting The cosmic superclass Object
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 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 informationChapter 18: Stacks And Queues
Chapter 18: Stacks And Queues 18.1 Introduction to the Stack ADT Introduction to the Stack ADT Stack: a LIFO (last in, first out) data structure Examples: plates in a cafeteria return addresses for function
More informationStacks and Queues
Stacks and Queues 2-25-2009 1 Opening Discussion Let's look at solutions to the interclass problem. Do you have any questions about the reading? Do you have any questions about the assignment? Minute Essays
More informationNo Aids Allowed. Do not turn this page until you have received the signal to start.
CSC 148H Midterm Fall 2007 St. George Campus Duration 50 minutes Student Number: Family Name: Given Name: No Aids Allowed. Do not turn this page until you have received the signal to start. # 1: /10 #
More informationCMSC131. Inheritance. Object. When we talked about Object, I mentioned that all Java classes are "built" on top of that.
CMSC131 Inheritance Object When we talked about Object, I mentioned that all Java classes are "built" on top of that. This came up when talking about the Java standard equals operator: boolean equals(object
More informationCSEN401 Computer Programming Lab. Topics: Object Oriented Features: Abstraction and Polymorphism
CSEN401 Computer Programming Lab Topics: Object Oriented Features: Abstraction and Polymorphism Prof. Dr. Slim Abdennadher 23.2.2015 c S. Abdennadher 1 Object-Oriented Paradigm: Features Easily remembered
More informationInformatik II (D-ITET) Tutorial 6
Informatik II (D-ITET) Tutorial 6 TA: Marian George, E-mail: marian.george@inf.ethz.ch Distributed Systems Group, ETH Zürich Exercise Sheet 5: Solutions and Remarks Variables & Methods beginwithlowercase,
More informationChapter 18: Stacks And Queues. Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Chapter 18: Stacks And Queues Copyright 2009 Pearson Education, Inc. Copyright Publishing as Pearson 2009 Addison-Wesley Pearson Education, Inc. Publishing as Pearson Addison-Wesley 18.1 Introduction to
More informationOutline and Reading. The Stack ADT ( 4.2.1) Applications of Stacks ( 4.2.3) Array-based implementation ( 4.2.2) Growable array-based stack.
Stacks Outline and Reading The Stack ADT ( 4.2.1) Applications of Stacks ( 4.2.3) Array-based implementation ( 4.2.2) Growable array-based stack Stacks 2 Abstract Data Types (ADTs) An abstract data type
More informationADT Stack. Inserting and deleting elements occurs at the top of Stack S. top. bottom. Stack S
Stacks Stacks & Queues A linear sequence, or list, is an ordered collection of elements: S = (s 1, s 2,..., s n ) Stacks and queues are finite linear sequences. A Stack is a LIFO (Last In First Out) list.
More informationInheritance and Polymorphism
Object Oriented Programming Designed and Presented by Dr. Ayman Elshenawy Elsefy Dept. of Systems & Computer Eng.. Al-Azhar University Website: eaymanelshenawy.wordpress.com Email : eaymanelshenawy@azhar.edu.eg
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 informationObject Oriented Design. Object-Oriented Design. Inheritance & Polymorphism. Class Hierarchy. Goals Robustness Adaptability Flexible code reuse
Object-Oriented Design Object Oriented Design Goals Robustness Adaptability Flexible code reuse Principles Abstraction Encapsulation Modularity March 2005 Object Oriented Design 1 March 2005 Object Oriented
More informationStacks and Queues. Gregory D. Weber. CSCI C243 Data Structures
Stacks and Queues Gregory D. Weber CSCI C243 Data Structures Principal Points 1. The Stack interface: how to declare it, what it does. 2. Generics: why they were added to Java, how to use them. 3. The
More informationQueues Fall 2018 Margaret Reid-Miller
Queues 15-121 Fall 2018 Margaret Reid-Miller Today Exam 2 is next Tuesday, October 30 Writing methods various classes that implement Lists. Methods using Lists and Big-O w/ ArrayList or LinkedLists Prove
More informationJAVA MOCK TEST JAVA MOCK TEST II
http://www.tutorialspoint.com JAVA MOCK TEST Copyright tutorialspoint.com This section presents you various set of Mock Tests related to Java Framework. You can download these sample mock tests at your
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 informationStacks. Lecture6: Stacks. Stack Operations. Stack Interface in Java
Stacks (01F) Lecture6: Stacks What is stack? An abstract data type storing arbitrary objects. An ordered list in which all insertions and deletions are made at one end, called top Push Pop Top Bohyung
More informationCMSC 132: Object-Oriented Programming II
CMSC 132: Object-Oriented Programming II Java Support for OOP Department of Computer Science University of Maryland, College Park Object Oriented Programming (OOP) OO Principles Abstraction Encapsulation
More informationChapter 18: Stacks And Queues
Chapter 18: Stacks And Queues 18.1 Introduction to the Stack ADT Introduction to the Stack ADT Stack a LIFO (last in, first out) data structure Examples plates in a cafeteria return addresses for function
More informationInformatik II. Tutorial 6. Mihai Bâce Mihai Bâce. April 5,
Informatik II Tutorial 6 Mihai Bâce mihai.bace@inf.ethz.ch 05.04.2017 Mihai Bâce April 5, 2017 1 Overview Debriefing Exercise 5 Briefing Exercise 6 Mihai Bâce April 5, 2017 2 U05 Some Hints Variables &
More informationStacks Goodrich, Tamassia Stacks
Stacks Stacks 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 conditions associated with operations
More informationStacks and Queues. EECS2030: Advanced Object Oriented Programming Fall 2017 CHEN-WEI WANG
Stacks and Queues EECS2030: Advanced Object Oriented Programming Fall 2017 CHEN-WEI WANG What is a Stack? A stack is a collection of objects. Objects in a stack are inserted and removed according to the
More informationChapter 13 Object Oriented Programming. Copyright 2006 The McGraw-Hill Companies, Inc.
Chapter 13 Object Oriented Programming Contents 13.1 Prelude: Abstract Data Types 13.2 The Object Model 13.4 Java 13.1 Prelude: Abstract Data Types Imperative programming paradigm Algorithms + Data Structures
More informationQueues 4/11/18. Many of these slides based on ones by Cynthia Lee
Queues 4/11/18 Many of these slides based on ones by Cynthia Lee Administrivia HW 4 due tomorrow night (list implementations) Reading: For Friday: Beginning of Chapter 7 (pp. 198-211) For Monday: Rest
More informationObject-Oriented Design. March 2005 Object Oriented Design 1
Object-Oriented Design March 2005 Object Oriented Design 1 Object Oriented Design Goals Robustness Adaptability Flexible code reuse Principles Abstraction Encapsulation Modularity March 2005 Object Oriented
More informationCollections Chapter 12. Instructor: Scott Kristjanson CMPT 125/125 SFU Burnaby, Fall 2013
Collections Chapter 12 Instructor: Scott Kristjanson CMPT 125/125 SFU Burnaby, Fall 2013 2 Scope Introduction to Collections: Collection terminology The Java Collections API Abstract nature of collections
More informationCOMP9024: Data Structures and Algorithms
COMP9024: Data Structures and Algorithms Week Four: Stacks and Queues Hui Wu Session 2, 2015 http://www.cse.unsw.edu.au/~cs9024 1 Outline Stacks Queues 2 Stacks 3 Abstract Data Types (ADTs) An abstract
More informationCSE 143 SAMPLE MIDTERM SOLUTION
CSE 143 SAMPLE MIDTERM SOLUTION 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
More informationQueues. Stacks and Queues
Queues Reading: RS Chapter 14 Slides are modified from those provided by Marty Stepp www.buildingjavaprograms.com 1 Stacks and Queues Sometimes a less powerful, but highly optimized collection is useful.
More informationData Structures and Algorithms, Winter term 2018 Practice Assignment 3
German University in Cairo Media Engineering and Technology Prof. Dr. Slim Abdennadher Dr. Wael Abouelsaadat Data Structures and Algorithms, Winter term 2018 Practice Assignment 3 Exercise 3-1 Search in
More informationCSCD 326 Data Structures I Stacks
CSCD 326 Data Structures I Stacks 1 Stack Interface public interface StackInterface { public boolean isempty(); // Determines whether the stack is empty. // Precondition: None. // Postcondition: Returns
More informationIntroduction to Generics in Java 5
Introduction to Generics in Java 5 One trouble with the list, stack, and queue ADTs that we have written so far is that the type of the objects stored in them cannot be checked at compile time. For example,
More informationLists, Stacks, and Queues
Unit 8, Part 2 Lists, Stacks, and Queues Computer Science S-111 Harvard University David G. Sullivan, Ph.D. Representing a Sequence: Arrays vs. Linked Lists Sequence an ordered collection of items (position
More informationCMP Points Total Midterm Spring Version (16 Points) Multiple Choice:
Version 1 Instructions Write your name and version number on the top of the yellow paper. Answer all questions on the yellow paper. One question per page. Use only one side of the yellow paper. 1. (16
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 informationComputer Science CS221 Test 2 Name. 1. Give a definition of the following terms, and include a brief example. a) Big Oh
Computer Science CS221 Test 2 Name 1. Give a definition of the following terms, and include a brief example. a) Big Oh b) abstract class c) overriding d) implementing an interface 10/21/1999 Page 1 of
More informationCMPS 390 Data Structures
CMPS 390 Data Structures Programming Assignment #02 Infix to Postfix 1. Complete two methods in Java program (Postfix.java) to convert an infix expression into a postfix expression and evaluate the postfix
More informationCS/ENGRD 2110 SPRING 2018
CS/ENGRD 2110 SPRING 2018 Lecture 7: Interfaces and http://courses.cs.cornell.edu/cs2110 1 2 St Valentine s Day! It's Valentines Day, and so fine! Good wishes to you I consign.* But since you're my students,
More informationInformatik II Tutorial 6. Subho Shankar Basu
Informatik II Tutorial 6 Subho Shankar Basu subho.basu@inf.ethz.ch 06.04.2017 Overview Debriefing Exercise 5 Briefing Exercise 6 2 U05 Some Hints Variables & Methods beginwithlowercase, areverydescriptiveand
More informationData Structures Lecture 5
Fall 2017 Fang Yu Software Security Lab. Dept. Management Information Systems, National Chengchi University Data Structures Lecture 5 Announcement Project Proposal due on Nov. 9 Remember to bring a hardcopy
More informationToday s lecture. CS 314 fall 01 C++ 1, page 1
Today s lecture Midterm Thursday, October 25, 6:10-7:30pm general information, conflicts Object oriented programming Abstract data types (ADT) Object oriented design C++ classes CS 314 fall 01 C++ 1, page
More informationInheritance in java is a mechanism in which one object acquires all the properties and behaviors of parent object.
Inheritance in Java 1. Inheritance 2. Types of Inheritance 3. Why multiple inheritance is not possible in java in case of class? Inheritance in java is a mechanism in which one object acquires all the
More informationCS61B Spring 2016 Guerrilla Section 2 Worksheet
Spring 2016 27 February 2016 Directions: In groups of 4-5, work on the following exercises. Do not proceed to the next exercise until everyone in your group has the answer and understands why the answer
More informationLecture 3 Linear Data Structures
Lecture 3 Linear Data Structures - 1 - Learning Outcomes Based on this lecture, you should: Know the basic linear data structures Be able to express each as an Abstract Data Type (ADT) Be able to specify
More informationPractice for Chapter 11
Practice for Chapter 11 MULTIPLE CHOICE. Choose the one alternative that best completes the statement or answers the question. 1) Object-oriented programming allows you to derive new classes from existing
More informationCE204 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 informationDefinition of Stack. 5 Linked Structures. Stack ADT Operations. ADT Stack Operations. A stack is a LIFO last in, first out structure.
5 Linked Structures Definition of Stack Logical (or ADT) level: A stack is an ordered group of homogeneous items (elements), in which the removal and addition of stack items can take place only at the
More informationChapter 5. ADTs Stack and Queue
Chapter 5 ADTs Stack and Queue Stacks of Coins and Bills Stacks of Boxes and Books TOP OF THE STACK TOP OF THE STACK Logical (or ADT) level: A stack is an ordered group of homogeneous items (elements),
More informationWentworth Institute of Technology COMP201 Computer Science II Spring 2015 Derbinsky. Stacks and Queues. Lecture 11.
Lecture 11 1 More Data Structures In this lecture we will use a linked list to implement two abstract data types (ADT) An ADT provides the interface, or what a data structure does We can then use code
More informationCH ALGORITHM ANALYSIS CH6. STACKS, QUEUES, AND DEQUES
CH4.2-4.3. ALGORITHM ANALYSIS CH6. STACKS, QUEUES, AND DEQUES ACKNOWLEDGEMENT: THESE SLIDES ARE ADAPTED FROM SLIDES PROVIDED WITH DATA STRUCTURES AND ALGORITHMS IN JAVA, GOODRICH, TAMASSIA AND GOLDWASSER
More informationCSIS 10B Lab 2 Bags and Stacks
CSIS 10B Lab 2 Bags and Stacks Part A Bags and Inheritance In this part of the lab we will be exploring the use of the Bag ADT to manage quantities of data of a certain generic type (listed as T in the
More informationCMPSCI 187: Programming With Data Structures. Lecture #11: Implementing Stacks With Arrays David Mix Barrington 28 September 2012
CMPSCI 187: Programming With Data Structures Lecture #11: Implementing Stacks With Arrays David Mix Barrington 28 September 2012 Implementing Stacks With Arrays The Idea of the Implementation Data Fields
More informationCS 61B Spring 2017 Guerrilla Section 3 Solutions
Spring 2017 25 February 2017 Directions: In groups of 4-5, work on the following exercises. Do not proceed to the next exercise until everyone in your group has the answer and understands why the answer
More informationControl flow in Eiffel
Announcements Assignment will be posted this week.» We ll make sure you have enough time to it! A little more Eiffel, Genericity and ADTs Week 3, Lecture 4 January 16 Section N Review What is the definition
More informationCS Internet programming Unit- I Part - A 1 Define Java. 2. What is a Class? 3. What is an Object? 4. What is an Instance?
CS6501 - Internet programming Unit- I Part - A 1 Define Java. Java is a programming language expressly designed for use in the distributed environment of the Internet. It was designed to have the "look
More informationNo Aids Allowed. Do not turn this page until you have received the signal to start. Read this entire page or you ll miss the bonus question.
CSC 148H Midterm Fall 2005 St. George Campus Duration 50 minutes Student Number: Family Name: Given Name: No Aids Allowed. Do not turn this page until you have received the signal to start. Read this entire
More informationLecture 3 Linear Data Structures: Arrays, Array Lists, Stacks, Queues and Linked Lists
Lecture 3 Linear Data Structures: Arrays, Array Lists, Stacks, Queues and Linked Lists Chapters 3.1-3.3, 5.1-5.2, 6.1-1 - Core Collection Interfaces - 2 - The Java Collections Framework Interface Abstract
More informationCOMPUTER SCIENCE DEPARTMENT PICNIC. Operations. Push the power button and hold. Once the light begins blinking, enter the room code
COMPUTER SCIENCE DEPARTMENT PICNIC Welcome to the 2016-2017 Academic year! Meet your faculty, department staff, and fellow students in a social setting. Food and drink will be provided. When: Saturday,
More informationClass, Variable, Constructor, Object, Method Questions
Class, Variable, Constructor, Object, Method Questions http://www.wideskills.com/java-interview-questions/java-classes-andobjects-interview-questions https://www.careerride.com/java-objects-classes-methods.aspx
More informationInheritance, polymorphism, interfaces
Inheritance, polymorphism, interfaces "is-a" relationship Similar things (sharing same set of attributes / operations): a group / concept Similar groups (sharing a subset of attributes / operations): a
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 informationQueues. Virtuelle Fachhochschule. Prof. Dr. Debora Weber-Wulff
Queues Virtuelle Fachhochschule Prof. Dr. Debora Weber-Wulff!1 Queues First In, First Out Well-known in socialist society Operations enqueue join the back of the line dequeue remove from the front of the
More information