Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

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.

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote