Provided: NonZeroNumStack.java and NonZeroNumQueue.java import java.util.*; publ
ID: 3711613 • Letter: P
Question
Provided: NonZeroNumStack.java and NonZeroNumQueue.java
import java.util.*;
public class NonZeroNumStack{
private int[] data;
private int total;
public NonZeroNumStack(){
data=new int[10];
total=0;
}
public int pop(){
if(isEmpty())
return 0;
else{
return data[--total];
}
}
public int top(){
if(isEmpty())
return 0;
else
return data[total-1];
}
public void push(int num){
if(num==0) return;
if(data.length==total){
int[] tmp=new int[total*2];
for(int i=0; i<total; i++)
tmp[i]=data[i];
data=tmp;
}
data[total++]=num;
}
public void push(int[] arr){
for(int i=0; i<arr.length; i++)
push(arr[i]);
}
public int size(){
return total;
}
public boolean isEmpty(){
return total==0;
}
public boolean isFull(){
return false;
}
}
public class NonZeroNumQueue{
private int[] data;
private int total;
private int front;
private int tail;
public NonZeroNumQueue(){
data=new int[10];
total=0;
front=tail=0;
}
public void enqueue(int num){
//Implement this method here
}
public void dequeue(){
if(!isEmpty()){
total--;
front = (front+1) %data.length;
}
}
public int peek(){
if(isEmpty())
return 0; //0 means the queue is empty
return data[front];
}
public boolean isEmpty(){
return total==0;
}
public boolean isFull(){
return false;
}
public int size(){
return total;
}
}
Explanation / Answer
/**Modified NonZeroNumQueue class*/
//NonZeroNumQueue.java
public class NonZeroNumQueue{
private int[] data;
private int total;
private int front;
private int tail;
public NonZeroNumQueue()
{
data=new int[10];
total=0;
front=tail=0;
}
/**Method to enque num*/
public void enqueue(int num)
{
if(num!=0)
{
//Increment tail index
tail++;
//Add the item to the queue
data[tail%10]=num;
total++;
}
}
/**Modified deque method*/
public void dequeue(){
if(!isEmpty()){
//increment front
front++;
int num = data[front %10];
total--;
}
}
public int peek(){
if(isEmpty())
return 0; //0 means the queue is empty
return data[front];
}
//Modified isEmpty method
public boolean isEmpty(){
return front==tail;
}
public boolean isFull(){
return false;
}
public int size(){
return total;
}
//Helper method to display queue
public void display( )
{
for(int i=front+1;i<=tail;i++)
System.out.print(data[i]+".");
System.out.println();
}
}
--------------------------------------------------------------------------------------
//TestQueue.java
public class TestQueue {
public static void main(String[] args) {
//Create an instance of class, NonZeroNumQueue
NonZeroNumQueue que=new NonZeroNumQueue();
//try to enque 0 but failed to enqueu
que.enqueue(0);
//enquen below numbers into que object
que.enqueue(1);
que.enqueue(2);
que.enqueue(3);
que.enqueue(4);
que.enqueue(5);
System.out.println("que elements ");
//print que
que.display();
//deque element from que
que.dequeue();
//call display to display
System.out.println("After deque");
que.display();
//deque element from que
que.dequeue();
//call display to display
System.out.println("After deque");
que.display();
//deque element from que
que.dequeue();
//call display to display
System.out.println("After deque");
que.display();
}
}
--------------------------------------------------------------------------------------
Sample Output:
que elements
1.2.3.4.5.
After deque
2.3.4.5.
After deque
3.4.5.
After deque
4.5.
Note : Class NonZeroNumQueue methods are corrected as per requirement.
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.