Implement, using only the Queue kernel methods, the static method declared as follows and answer the questions below: Reports the smallest integer in the given {@code Queue). @param q the queue of integer @return the smallest integer in the given queue @requires q /= empty_string @ensures min is in entries (q) and for all x: integer where (x is in entries (q)) (min <= x) ivate static int min (Queue q) {...} i. Why do you need the requires clause? ii. Why is the first line of the ensures clause important (min is in entries (q))? Explain what the implementation could do if this line was not included in the postcondition.

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question
1. Implement, using only the Queue kernel methods, the static method declared as follows and
answer the questions below:
Reports the smallest integer in the given {@code Queue<Integer>}.
@param q
the queue of integer
@return the smallest integer in the given queue
@requires q /= empty_string
@ensures <pre>
min is in entries (q) and
for all x: integer
where (x is in entries (q))
(min <= x)
</pre>
ivate static int min (Queue<Integer> q) {...}
i. Why do you need the requires clause?
ii. Why is the first line of the ensures clause important (min is in entries (q))?
Explain what the implementation could do if this line was not included in the
postcondition.
2. Implement the static method declared as follows:
Reports an array of two {@code int}s with the smallest and the
* largest integer in the given {@ code Queue<Integer>}.
* @param q
the queue of integer
@return an array of two (@code int}s with the smallest and the
largest integer in the given queue
* @requires q /= empty_string
@ensures <pre>
{ minAndMax [0], minAndMax [1] } is subset of entries (q) and
for all x: integer
where (x in in entries (q))
(minAndMax [0] <= x <= minAndMax [1])
* </pre>
* /
private static int [] minAndMax (Queue<Integer> q) {...}
Note that because in Java a function can return only one value and it is not possible to
return other values through the parameters, we are forced to return an array with the
minimum and maximum integers of the given queue as elements.
3. Consider the minAndMax operation again. Write a second implementation for this operation
that uses the "Noah's Ark" algorithm. This algorithm takes entries from q in pairs, first
comparing them to each other, then comparing the smaller of the pair to the minimum so far
and the larger of the pair to the maximum so far.
Transcribed Image Text:1. Implement, using only the Queue kernel methods, the static method declared as follows and answer the questions below: Reports the smallest integer in the given {@code Queue<Integer>}. @param q the queue of integer @return the smallest integer in the given queue @requires q /= empty_string @ensures <pre> min is in entries (q) and for all x: integer where (x is in entries (q)) (min <= x) </pre> ivate static int min (Queue<Integer> q) {...} i. Why do you need the requires clause? ii. Why is the first line of the ensures clause important (min is in entries (q))? Explain what the implementation could do if this line was not included in the postcondition. 2. Implement the static method declared as follows: Reports an array of two {@code int}s with the smallest and the * largest integer in the given {@ code Queue<Integer>}. * @param q the queue of integer @return an array of two (@code int}s with the smallest and the largest integer in the given queue * @requires q /= empty_string @ensures <pre> { minAndMax [0], minAndMax [1] } is subset of entries (q) and for all x: integer where (x in in entries (q)) (minAndMax [0] <= x <= minAndMax [1]) * </pre> * / private static int [] minAndMax (Queue<Integer> q) {...} Note that because in Java a function can return only one value and it is not possible to return other values through the parameters, we are forced to return an array with the minimum and maximum integers of the given queue as elements. 3. Consider the minAndMax operation again. Write a second implementation for this operation that uses the "Noah's Ark" algorithm. This algorithm takes entries from q in pairs, first comparing them to each other, then comparing the smaller of the pair to the minimum so far and the larger of the pair to the maximum so far.
Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 4 steps

Blurred answer
Knowledge Booster
Threads in linked list
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education