Question: import java.io . * ; import java.math. * ; import java.text. * ; import java.util. * ; import java.util.concurrent. * ; import java.util.function. * ;import
import java.io; import java.math.; import java.text.; import java.util.;
import java.util.concurrent.; import java.util.function.;import java.util.regex.;
interface IBinaryHeap
public void addint item;
public int remove;
public int size;
public int peek;
class BinaryHeap implements IBinaryHeap
private final int INITIALSIZE ;
private List arrList;
private int size;
public BinaryHeap
this.size ;
this.arrList new ArrayListINITIALSIZE;
this.arrList.addIntegerMAXVALUE;
public void print
String elements ;
We're not using the first element
for int i ; i arrList.size; i
if i
elements X;
else
elements arrList.geti;
if i arrList.size
elements ;
elements ;
String summary String.format size: d elements: s this.size, elements;
System.out.printlnsummary;
Write all your code BELOW here...
@Override
public void addint item Write here
@Override
public int remove Write here
@Override
public int size Write here
@Override
public int peek Write here
private void heapifyUpint nodeIndex Write here
private void heapifyDownint nodeIndex Write here
private int getLeftChildIndexint nodeIndex Write here
private int getRightChildIndexint nodeIndex Write here
private int getParentIndexint nodeIndex Write here
private boolean haveLeftChildint nodeIndex Write here
private boolean haveRightChildint nodeIndex Write here
private void swapint index int index Write here
interface IMaxPriorityQueue
public void addItemint item;
public int removeItem;
public int peek;
public int getSize;
public boolean isEmpty;
class MaxPriorityQueue implements IMaxPriorityQueue
private BinaryHeap binaryHeap;
public MaxPriorityQueue
this.binaryHeap new BinaryHeap;
public void print
this.binaryHeap.print;
Implement the IMaxPriorityQueue.
@Override
public void addItemint item Write here
@Override
public int removeItem Write here
@Override
public int peek Write here
@Override
public int getSize Write here
@Override
public boolean isEmpty Write here
class Solution
public static void mainString args throws IOException
BufferedReader bufferedReader new BufferedReadernew InputStreamReaderSystemin;
int operationCount Integer.parseIntbufferedReaderreadLinereplaceAlls$splittrim;
bufferedReader.readLine;
MaxPriorityQueue queue new MaxPriorityQueue;
IntStream.range operationCountforEachopCountItr
try
List theInput Stream.ofbufferedReaderreadLinereplaceAlls$split
collecttoList;
String action theInput.get;
String argsString theInput.get;
argsString argsString.substring argsString.length;
String arg null;
if argsStringlength
List argsInput Arrays.asListargsStringsplit;
arg argsInput.size argsInput.gettrim : null;
ProcessInputsqueue action, arg; catch IOException exception
throw new RuntimeExceptionexception;
;
bufferedReader.close;
private static void ProcessInputsMaxPriorityQueue queue, String action, String arg
int value;
switch action
case "addItem":value Integer.parseIntarg;queue.addItemvalue;break;
case "removeItem":
ifqueueisEmptySystemout.printlnQUEUEISEMPTY";
else int result queue.removeItem;System.out.printlnresult; break;
case "peek": int result queue.peek;System.out.printlnresult; break;
case "getSize":int result queue.getSize;System.out.printlnresult;break;
case "isEmpty":boolean result queue.isEmpty;System.out.printlnresult;break;
case "print":queue.print;break;
The logical binary tree like structure.
Input
OPERATIONCOUNT
addItem
addItem
addItem
addItem
addItem
addItem
addItem
removeItem
removeItem
print
Output
size: elements: X
The above is size
size: elements: X is not.
Step by Step Solution
There are 3 Steps involved in it
1 Expert Approved Answer
Step: 1 Unlock
Question Has Been Solved by an Expert!
Get step-by-step solutions from verified subject matter experts
Step: 2 Unlock
Step: 3 Unlock
