Introduction to Computing II (ITI 1121) FINAL EXAMINATION

Similar documents
Introduction to Computing II (ITI 1121) FINAL EXAMINATION

Introduction to Computing II (ITI1121) FINAL EXAMINATION

Introduction to Computing II (ITI 1121) MIDTERM EXAMINATION

Solution suggestions for examination of Logic, Algorithms and Data Structures,

Data Structures and Algorithms Winter Semester

Lecture 5: Sep. 23 &25

Queues. Principles of Computer Science II. Basic features of Queues

CMSC 132, Object-Oriented Programming II Summer Lecture 12

Lists, Stacks, and Queues (plus Priority Queues)

CMSC 132, Object-Oriented Programming II Summer Lecture 6:

CS-141 Exam 2 Review October 19, 2016 Presented by the RIT Computer Science Community

Lecture 4: Stacks and Queues

Insert Sorted List Insert as the Last element (the First element?) Delete Chaining. 2 Slide courtesy of Dr. Sang-Eon Park

1 Trees. Listing 1: Node with two child reference. public class ptwochildnode { protected Object data ; protected ptwochildnode l e f t, r i g h t ;

6.045J/18.400J: Automata, Computability and Complexity. Quiz 2. March 30, Please write your name in the upper corner of each page.

CS-140 Fall 2017 Test 1 Version Practice Practice for Nov. 20, Name:

EENG/INFE 212 Stacks

Part I: Definitions and Properties

1 ListElement l e = f i r s t ; / / s t a r t i n g p o i n t 2 while ( l e. next!= n u l l ) 3 { l e = l e. next ; / / next step 4 } Removal

ITI Introduction to Computing II

Hypothesis Tests and Estimation for Population Variances. Copyright 2014 Pearson Education, Inc.

Stacks. Definitions Operations Implementation (Arrays and Linked Lists) Applications (system stack, expression evaluation) Data Structures 1 Stacks

Binary Search Trees. Lecture 29 Section Robb T. Koether. Hampden-Sydney College. Fri, Apr 8, 2016

ITI Introduction to Computing II

CS-140 Fall 2018 Test 2 Version Practice Nov. 12, Name:

Advanced Implementations of Tables: Balanced Search Trees and Hashing

CSE548, AMS542: Analysis of Algorithms, Fall 2017 Date: Oct 26. Homework #2. ( Due: Nov 8 )

CS-140 Fall 2018 Test 2 Version Practice Nov. 12, 2018

Priority queues implemented via heaps

Tutorial 4. Dynamic Set: Amortized Analysis

CS 6301 PROGRAMMING AND DATA STRUCTURE II Dept of CSE/IT UNIT V GRAPHS

On my honor, as an Aggie, I have neither given nor received unauthorized aid on this academic work

CSE 355 Test 2, Fall 2016

/463 Algorithms - Fall 2013 Solution to Assignment 4

Constructors - Cont. must be distinguished by the number or type of their arguments.

Binary Search Trees. Motivation

Physics 101 Hour Exam 1 March 3, 2014

Übung Informatik I - Programmierung - Blatt 7

Abstract Data Types. EECS 214, Fall 2017

Motivation. Dictionaries. Direct Addressing. CSE 680 Prof. Roger Crawfis

Data Structures in Java

SDS developer guide. Develop distributed and parallel applications in Java. Nathanaël Cottin. version

1.225 Transportation Flow Systems Quiz (December 17, 2001; Duration: 3 hours)

Outline Resource Introduction Usage Testing Exercises. Linked Lists COMP SCI / SFWR ENG 2S03. Department of Computing and Software McMaster University

CS213d Data Structures and Algorithms

Introduction to Programming (Java) 3/12

Physics 101. Hour Exam I Fall Last Name: First Name Network-ID Discussion Section: Discussion TA Name:

CMPSCI 311: Introduction to Algorithms Second Midterm Exam

Hash tables. Hash tables

ECEN 651: Microprogrammed Control of Digital Systems Department of Electrical and Computer Engineering Texas A&M University

University of Ottawa

Amortized analysis. Amortized analysis

Computer Organization I Test 1/Version 1 CMSC 2833 Autumn 2007

Chapter 5 Data Structures Algorithm Theory WS 2017/18 Fabian Kuhn

DNHI Homework 2 Solutions Recursion

CMSC 132, Object-Oriented Programming II Summer Lecture 10:

CSEN202: Introduction to Computer Programming Spring Semester 2014 Final Exam

Space-aware data flow analysis

Pushdown Automata. Chapter 12

Models of Computation. by Costas Busch, LSU

CA Compiler Construction

Problem Set 4 Solutions

Course Announcements. John Jannotti (cs32) Scope, Collections & Generics Feb 8, / 1

Discrete Event Simulation. Motive

Turing Machine Variants. Sipser pages

INF2220: algorithms and data structures Series 1

Heaps and Priority Queues

Hash tables. Hash tables

Final Exam CHM1321-B. Date: April 19 Length: 3 hrs Last Name: Professor Sandro Gambarotta Name:

A Simple Implementation Technique for Priority Search Queues

ENS Lyon Camp. Day 5. Basic group. C October

CS Exam 1 Study Guide and Practice Exam

Computer Science Introductory Course MSc - Introduction to Java

University of Ottawa

Our true, holographic blueprint of the human matrix system

1. Write a program to calculate distance traveled by light

AMORTIZED ANALYSIS. binary counter multipop stack dynamic table. Lecture slides by Kevin Wayne. Last updated on 1/24/17 11:31 AM

10. The GNFA method is used to show that

Slides for CIS 675. Huffman Encoding, 1. Huffman Encoding, 2. Huffman Encoding, 3. Encoding 1. DPV Chapter 5, Part 2. Encoding 2

CS 21 Decidability and Tractability Winter Solution Set 3

Lecture 14: Nov. 11 & 13

Blocking Synchronization: Streams Vijay Saraswat (Dec 10, 2012)

ω = k/m x = A cos (ωt + ϕ 0 ) L = I ω a x = ω 2 x P = F v P = de sys J = F dt = p w = m g F G = Gm 1m 2 D = 1 2 CρAv2 a r = v2

MA EXAM 3 INSTRUCTIONS VERSION 01 April 17, Section # and recitation time

Compiling Techniques

MA EXAM 3 INSTRUCTIONS VERSION 01 April 14, Section # and recitation time

CMSC 132, Object-Oriented Programming II Summer Lecture 11:

Elementary Sorts 1 / 18

Quiz 2 out of 50 points

Solutions. 9. Ans. C. Memory size. 11. Ans. D. a b c d e f a d e b c f a b d c e f a d b c e f a b d e c f a d b e c f. 13. Ans. D. Merge sort n log n

MA Exam 1 Fall 2015 VERSION 01

Usability Extensions for the Worklet Service

MA EXAM 2 INSTRUCTIONS VERSION 01 March 9, Section # and recitation time

Latitude and Longitude Pre Test

E23: Hotel Management System Wen Yunlu Hu Xing Chen Ke Tang Haoyuan Module: EEE 101

Searching, mainly via Hash tables

Lecture 1 : Data Compression and Entropy

CSE 211. Pushdown Automata. CSE 211 (Theory of Computation) Atif Hasan Rahman

Turing Machines Part Three

Simply Typed Lambda Calculus

Transcription:

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 Introduction to Computing II (ITI 1121) FINAL EXAMINATION Instructors: Sherif G. Aly, Nathalie Japkowicz, and Marcel Turcotte April 2015, duration: 3 hours Last name: First name: Student #: Seat #: Signature: Section: A or B or C Instructions 1. This is a closed book examination. 2. No calculators, electronic devices or other aids are permitted. (a) Any electronic device or tool must be shut off, stored and out of reach. (b) Anyone who fails to comply with these regulations may be charged with academic fraud. 3. Write your answers in the space provided. (a) Use the back of pages if necessary. (b) You may not hand in additional pages. 4. Do not remove pages or the staple holding the examination pages together. 5. Write comments and assumptions to get partial marks. 6. Beware, poor hand writing can affect grades. 7. Wait for the start of the examination. Marking scheme Question Maximum Result 1 10 2 20 3 15 4 10 5 10 Total 65 All rights reserved. No part of this document may be reproduced, stored in a retrieval system or transmitted in any form or by any means, electronic, mechanical, photocopying, recording or otherwise without prior written permission from the instructors.

April 2015 ITI 1121 Page 2 of 20 Question 1 (10 marks) A. True or False. The following Java code will not compile. p u b l i c c l a s s P e r s o n { p r i v a t e S t r i n g name ; p r i v a t e i n t age ; p u b l i c c l a s s C h i l d extends P e r s on { p r i v a t e i n t g r a d e ; p u b l i c C h i l d ( S t r i n g name, i n t age, i n t g r a d e ) { t h i s. name = name ; t h i s. age = age ; t h i s. g r a d e = g r a d e ; B. True or False. The following Java code will not compile. p u b l i c c l a s s Cell <E> { p r i v a t e E v a l u e ; p u b l i c C e l l ( E v a l u e ) { i f ( v a l u e == n u l l ) { throw new N u l l P o i n t e r E x c e p t i o n ( "illegal value" ) ; t h i s. v a l u e = v a l u e ; p u b l i c boolean i s E q u a l ( Cell <E> o t h e r ) { i f ( o t h e r == n u l l ) { return f a l s e ; e l s e { return v a l u e. e q u a l s ( o t h e r. v a l u e ) ;

April 2015 ITI 1121 Page 3 of 20 C. Consider the following array-based implementation of a stack: p u b l i c c l a s s ArrayStack <E> implements Stack <E> { p r i v a t e E [ ] elems ; p r i v a t e i n t t o p ; p u b l i c A r r a y S t a c k ( i n t c a p a c i t y ) { elems = ( E [ ] ) new O b j e c t [ c a p a c i t y ] ; t o p = 0 ; p u b l i c E pop ( ) { i f ( t o p == 0) { throw new j a v a. u t i l. NoSuchElementException ( ) ; E saved ; t o p = t o p 1 ; saved = elems [ t o p ] ; elems [ t o p ] = n u l l ; return saved ; True or False. The underlined code is needed to guard against memory leaks. D. Values are added to a binary search tree in the following order: 25, 3, 37, 1, 19, 48. True or False. The pre-order traversal of that tree will print: 1, 3, 19, 25, 37, 48, while its post-order traversal will print: 48, 37, 25, 19, 3, 1.

April 2015 ITI 1121 Page 4 of 20 E. Consider the following program: p u b l i c c l a s s T e s t { p u b l i c s t a t i c void main ( S t r i n g [ ] a r g s ) { Queue<I n t e g e r > q ; q = new LinkedQueue ( ) ; Stack <I n t e g e r > s ; s = new L i n k e d S t a c k ( ) ; q. enqueue ( 1 ) ; s. push ( 1 ) ; i n t x = 0 ; f o r ( i n t i = 1 ; i < 5 ; i ++) { x = q. dequeue ( ) + s. pop ( ) ; s. push ( x ) ; while ( x > 0) { q. enqueue ( x ) ; x = x 1 ; i n t c o u n t ; c o u n t = 0 ; while (! q. isempty ( ) ) { q. dequeue ( ) ; c o u n t ++; System. o u t. p r i n t l n ( "Size of the queue is " + c o u n t ) ; c o u n t = 0 ; while (! s. isempty ( ) ) { s. pop ( ) ; c o u n t ++; System. o u t. p r i n t l n ( "Size of the stack is " + c o u n t ) ; What does the above program print? (a) Size of the queue is 4; Size of the stack is 1. (b) Size of the queue is 7; Size of the stack is 5. (c) Size of the queue is 17; Size of the stack is 1. (d) Size of the queue is 21; Size of the stack is 5. (e) Size of the queue is 28; Size of the stack is 1.

April 2015 ITI 1121 Page 5 of 20 F. Given the following class definition: p u b l i c c l a s s S i n g l y L i n k e d L i s t <E> { p r i v a t e s t a t i c c l a s s Node<T> { p r i v a t e f i n a l T v a l u e ; p r i v a t e Node<T> n e x t ; p r i v a t e Node ( T value, Node<T> n e x t ) { t h i s. v a l u e = v a l u e ; t h i s. n e x t = n e x t ; p r i v a t e Node<E> head ; p u b l i c void a d d F i r s t ( E elem ) { head = new Node<E>(elem, head ) ; p u b l i c void modify ( ) { Node<E> p, q ; p = head ; q = p. n e x t. n e x t ; q. n e x t = p. n e x t ; f o r ( i n t i = 0 ; i < 6 ; i ++) { System. o u t. p r i n t ( p. v a l u e ) ; p = p. n e x t ; System. o u t. p r i n t l n ( ) ; p u b l i c s t a t i c void main ( S t r i n g [ ] a r g s ) { S i n g l y L i n k e d L i s t <S t r i n g > l ; l = new S i n g l y L i n k e d L i s t ( ) ; l. a d d F i r s t ( "D" ) ; l. a d d F i r s t ( "C" ) ; l. a d d F i r s t ( "B" ) ; l. a d d F i r s t ( "A" ) ; l. modify ( ) ; What does the above program print? (a) ABCD and then terminates abruptly with NullPointerException (b) ABCBCB (c) ABCDAB (d) ABCDBC (e) DCBCBC

April 2015 ITI 1121 Page 6 of 20 G. Consider the following class definition: p u b l i c c l a s s S i n g l y L i n k e d L i s t { p u b l i c s t a t i c c l a s s Node { p u b l i c i n t v a l u e ; p u b l i c Node n e x t ; p u b l i c Node ( i n t value, Node n e x t ) { t h i s. v a l u e = v a l u e ; t h i s. n e x t = n e x t ; p u b l i c Node f i r s t ; p u b l i c void a d d F i r s t ( i n t elem ) { f i r s t = new Node ( elem, f i r s t ) ; p u b l i c i n t mystery ( ) { i f ( f i r s t == n u l l ) { return 0 ; return mystery ( f i r s t, 0 ) ; p r i v a t e i n t mystery ( Node p, i n t n ) { i n t r e s u l t ; i f ( p. n e x t == n u l l ) { r e s u l t = n + p. v a l u e ; e l s e { r e s u l t = mystery ( p. next, n + p. v a l u e ) ; return r e s u l t ; p u b l i c s t a t i c void main ( S t r i n g [ ] a r g s ) { S i n g l y L i n k e d L i s t l ; l = new S i n g l y L i n k e d L i s t ( ) ; l. a d d F i r s t ( 3 ) ; l. a d d F i r s t ( 2 ) ; l. a d d F i r s t ( 1 ) ; System. o u t. p r i n t l n ( l. mystery ( ) ) ; What does the above program print?

April 2015 ITI 1121 Page 7 of 20 Question 2 (20 marks) Write a class named GeoCoordinate that retains the longitude and latitude of an object on earth. Both longitude and latitude are represented as double values that must be in the range [-90.0, 90.0]. The class has the following constructors: GeoCoordinate(), which initializes the latitude to 0.0 (the equator), the longitude to 0.0 (the prime meridian). GeoCoordinate(double longitude, double latitude): initializes the longitude and latitudes to values in [-90.0, 90.0]. The class has the following methods: double getlongitude() and double getlatitude(), that return the longitude and latitude of the GeoCoordinate. boolean equals(geocoordinate g) that returns true if the GeoCoordinate of g and the current object represent the same GeoCoordinate, and false otherwise. boolean iswithinbounds(geocoordinate sw, GeoCoordinate ne) that takes exactly two GeoCoordinates representing the south-west and north-est vertices of a rectangular area (see Figure below), and returns true if the current coordinate is within the bounds of the area, and false otherwise. (This can be used to check whether a given vehicle for example has gone outside of a certain geographic area). ne sw

April 2015 ITI 1121 Page 8 of 20 Finally, the execution of the test program below, GeoCoordinateTest, should produce the following result: (20.0,30.0) false true caught IllegalArgumentException: Wrong argument(s) upon construction of GeoCoordinate p u b l i c c l a s s G e o C o o r d i n a t e T e s t { p u b l i c s t a t i c void main ( S t r i n g [ ] a r g s ) { GeoCoordinate c u r r e n t L o c a t i o n ; GeoCoordinate sw, ne ; c u r r e n t L o c a t i o n = new GeoCoordinate ( 2 0. 0, 3 0. 0 ) ; sw = new GeoCoordinate ( 1 0. 0, 1 0. 0 ) ; ne = new GeoCoordinate ( 3 0. 0, 3 0. 0 ) ; System. o u t. p r i n t l n ( c u r r e n t L o c a t i o n ) ; System. o u t. p r i n t l n ( c u r r e n t L o c a t i o n. e q u a l s ( sw ) ) ; System. o u t. p r i n t l n ( c u r r e n t L o c a t i o n. i s W i t h i n B o u n d s ( sw, ne ) ) ; t r y { GeoCoordinate w r o n g C o ordinate = new GeoCoordinate ( 100.0, 2 0. 0 ) ; catch ( I l l e g a l A r g u m e n t E x c e p t i o n e ) { System. o u t. p r i n t l n ( "caught IllegalArgumentException: " + e. getmessage ( ) ) ;

April 2015 ITI 1121 Page 9 of 20 (Question 2 continued)

April 2015 ITI 1121 Page 10 of 20 (Question 2 continued)

April 2015 ITI 1121 Page 11 of 20 Question 3 (15 marks) A doubly linked list that specifically stores strings is modified to enhance its efficiency. The linked list will now be an indexed doubly linked list so that the location of strings starting with the letters of the alphabet a, b, c,... z are easily located (lower case letters only for this question). All strings starting with a given letter are stored (together) in sequence in the linked list. For example, apple, aircraft, antenna, banana, ball, baseball, balloon, cat, caramel, category, etc. is an example of some strings that can be stored in such sequence in the linked list. To achieve this kind of indexing, a one dimensional array called index of size 26 is used. Each element in the array points to the starting location in the linked list that holds the corresponding character. For example, index[0] points to the first node in the linked list that has strings that start with the letter a, and so on. A null value indicates there are no strings of this kind in the list. "apple" "aircraft" "antena" "banana" "cat" head size 5 index 0 1 2 3 4 25 The diagram above shows the memory representation after inserting the first 5 elements. The execution of the test program below must produce the following result: {apple,aircraft,antena,banana,cat {apple,aircraft,antena,banana,ball,baseball,balloon,cat,caramel,case {apple,aircraft,antena,banana,ball,baseball,balloon,caramel,case {apple,aircraft,antena,ball,baseball,balloon,caramel,case... I n d e x e d L i n k e d L i s t l ; l = new I n d e x e d L i n k e d L i s t ( ) ; l. add ( "apple" ) ; l. add ( "aircraft" ) ; l. add ( "banana" ) ; l. add ( "antena" ) ; l. add ( "cat" ) ; System. o u t. p r i n t l n ( l ) ; l. add ( "ball" ) ; l. add ( "baseball" ) ; l. add ( "caramel" ) ; l. add ( "balloon" ) ; l. add ( "case" ) ; System. o u t. p r i n t l n ( l ) ; l. d e l e t e ( c ) ; System. o u t. p r i n t l n ( l ) ; l. d e l e t e ( b ) ; System. o u t. p r i n t l n ( l ) ; Complete the implementation of the class IndexLinkedList on the next pages.

April 2015 ITI 1121 Page 12 of 20 A. Complete the implementation of the constructor below. (3 marks) p u b l i c c l a s s I n d e x e d L i n k e d L i s t { p r i v a t e f i n a l S t r i n g ALPHA = "abcdefghijklmnopqrstuvwxyz" ; p r i v a t e s t a t i c c l a s s Node { p r i v a t e f i n a l S t r i n g v a l u e ; p r i v a t e Node p r e v i o u s ; p r i v a t e Node n e x t ; p r i v a t e Node ( S t r i n g value, Node p r e v i o u s, Node n e x t ) { t h i s. v a l u e = v a l u e ; t h i s. p r e v i o u s = p r e v i o u s ; t h i s. n e x t = n e x t ; p r i v a t e f i n a l Node head ; p r i v a t e f i n a l Node [ ] i n d e x ; p r i v a t e i n t s i z e ; p u b l i c I n d e x e d L i n k e d L i s t ( ) { head = ; ; ; i n d e x = ; s i z e = 0 ; / / C o n t i n u e s on t h e n e x t page...

April 2015 ITI 1121 Page 13 of 20 B. Write a method boolean delete(char c) that deletes the first occurring node whose strings starts with the character c. The method returns true for a successful deletion, and false if nothing was found to delete. (12 marks) p u b l i c boolean d e l e t e ( char c ) { i n t p o s i t i o n ; p o s i t i o n = ; Node toremoved ; toremoved = ; i f ( ) { Node b e f o r e, a f t e r ; b e f o r e = ; a f t e r = ; = ; = ; i f ( && ) { i n d e x [ p o s i t i o n ] = a f t e r ; e l s e { i n d e x [ p o s i t i o n ] = ; s i z e ; return toremoved!= n u l l ; / / I n d e x e d L i n k e d L i s t

April 2015 ITI 1121 Page 14 of 20 Question 4 (10 marks) Complete the implementation of the static method int remove(queue<e> q, E e, int n), which removes the first n occurrences of e in q. The method must work for any implementation of the interface Queue: p u b l i c i n t e r f a c e Queue<E> { boolean isempty ( ) ; void enqueue ( E e ) ; E dequeue ( ) ; Following a call to the method remove, the elements in the queue must remain in the same order, except that the first n occurrences of e have been removed. The method throws NullPointerException if either q or e are null. It throws IllegalArgumentException if n is a negative number. If the queue had less than n occurrences of e, the returned value represents the excess of elements that could not be removed. Consider the example below. Since you do not know the size of the queue, you cannot use an array for temporary storage. Instead, you must either use a queue or a stack (or both). You can assume the existence of the class LinkedQueue, which implements the interface Queue, as well as LinkedStack, which implements the interface Stack. p u b l i c i n t e r f a c e Stack <E> { boolean isempty ( ) ; E peek ( ) ; E pop ( ) ; void push ( E e ) ; Executing the test program below produces the following output: LinkedQueue: {A,B,R,A,C,A,D,A,B,R,A 0 LinkedQueue: {B,R,C,D,A,B,R,A 2 LinkedQueue: {B,R,D,A,B,R,A Queue<S t r i n g > q ; q = new LinkedQueue<S t r i n g > ( ) ; q. enqueue ( "A" ) ; q. enqueue ( "B" ) ; q. enqueue ( "R" ) ; q. enqueue ( "A" ) ; q. enqueue ( "C" ) ; q. enqueue ( "A" ) ; q. enqueue ( "D" ) ; q. enqueue ( "A" ) ; q. enqueue ( "B" ) ; q. enqueue ( "R" ) ; q. enqueue ( "A" ) ; System. o u t. p r i n t l n ( q ) ; System. o u t. p r i n t l n ( remove ( q, "A", 3 ) ) ; System. o u t. p r i n t l n ( q ) ; System. o u t. p r i n t l n ( remove ( q, "C", 3 ) ) ; System. o u t. p r i n t l n ( q ) ;

April 2015 ITI 1121 Page 15 of 20 p u b l i c c l a s s Remove { p u b l i c s t a t i c <E> i n t remove ( Queue<E> q, E e, i n t n ) { / / End o f remove / / End o f Remove

April 2015 ITI 1121 Page 16 of 20 Question 5 (10 marks) A binary search tree is a flexible and efficient data structure. However, as we discussed in class, the structure of the tree depends on the order in which the elements are inserted into the tree. In the worse cases, the binary search tree is no more efficient than linked lists. A left linear tree is such degenerated case. Definition: A binary search tree is left linear if it contains at least one node and all the nodes of the tree have no right child. A. Give (draw) an example of a left linear binary search tree having exactly 4 nodes. B. Implement the instance method boolean isleftlinear() that returns true if the instance is left linear, and false otherwise. p u b l i c c l a s s B i n a r y S e a r c h T r e e <E extends Comparable<E>> { p r i v a t e s t a t i c c l a s s Node<T> { p r i v a t e T v a l u e ; p r i v a t e Node<T> l e f t ; p r i v a t e Node<T> r i g h t ; p r i v a t e Node ( T v a l u e ) { t h i s. v a l u e = v a l u e ; l e f t = n u l l ; r i g h t = n u l l ; p r i v a t e Node<E> r o o t = n u l l ;

April 2015 ITI 1121 Page 17 of 20 (Question 5 continued) / / End o f B i n a r y S e a r c h T r e e

April 2015 ITI 1121 Page 18 of 20 A String and characters Characteristics of the class String that might be useful. char charat(int index) returns the char value at the specified index. int indexof(int ch) returns the index within this string of the first occurrence of the specified character. int length() returns the length of this string. Useful fact about characters. You can get the ASCII value of a character using a type cast to int. The execution of System.out.println( (int) a ); displays 97. The execution of System.out.println( (int) b ); displays 98.

April 2015 ITI 1121 Page 19 of 20 B Stack / S t a c k A b s t r a c t Data Type. A S t a c k i s a l i n e a r data s t r u c t u r e f o l l o w i n g l a s t in f i r s t o u t p r o t o c o l, i. e. t h e l a s t e l e m e n t t h a t has been added onto t h e Stack, i s t h e f i r s t one t o be removed. @param <E> t h e t y p e o f e l e m e n t s i n t h i s s t a c k / p u b l i c i n t e r f a c e Stack <E> { / T e s t s i f t h i s S t a c k i s empty. @return t r u e i f t h i s S t a c k i s empty ; and f a l s e o t h e r w i s e. / boolean isempty ( ) ; / R e t u r n s a r e f e r e n c e t o t h e t o p e l e m e n t ; does n o t change t h e s t a t e o f t h i s S t a c k. @return The t o p e l e m e n t o f t h i s s t a c k w i t h o u t removing i t. / a b s t r a c t E peek ( ) ; / Removes and r e t u r n s t h e e l e m e n t a t t h e t o p o f t h i s s t a c k. @return The t o p e l e m e n t o f t h i s s t a c k. / a b s t r a c t E pop ( ) ; / Puts an e l e m e n t o nto t h e t o p o f t h i s s t a c k. @param e l e m e n t t h e e l e m e n t be p u t onto t h e t o p o f t h i s s t a c k. / void push ( E e l e m e n t ) ;

April 2015 ITI 1121 Page 20 of 20 C Queue / Queue A b s t r a c t Data Type. A Queue i s a l i n e a r data s t r u c t u r e f o l l o w i n g f i r s t in f i r s t o u t p r o t o c o l, i. e. t h e f i r s t e l e m e n t t h a t has been added t o t h e Queue, i s t h e f i r s t one t o be removed. @param <E> t h e t y p e o f e l e m e n t s i n t h i s queue / p u b l i c i n t e r f a c e Queue<E> { / T e s t s i f t h i s Queue i s empty. @return t r u e i f t h i s Queue i s empty ; and f a l s e o t h e r w i s e. / boolean isempty ( ) ; / Removes and r e t u r n s t h e f r o n t e l e m e n t o f t h e Queue. @return t h e f r o n t e l e m e n t o f t h e Queue. / E dequeue ( ) ; / Puts an e l e m e n t a t t h e r e a r o f t h i s Queue. @param e l e m e n t t h e e l e m e n t be p u t a t t h e r e a r o f t h i s Queue. / void enqueue ( E e l e m e n t ) ;