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

1 (2 pts) Implement MyArrayStack class by extending ArrayList. import java.util.

ID: 3887454 • Letter: 1

Question

1 (2 pts) Implement MyArrayStack class by extending ArrayList.

import java.util.ArrayList;
import net.datastructures.*;


public class MyArrayStack<E> extends ArrayList<E> implements Stack<E> {

   @Override
   public void push(E e) {
       // TODO Auto-generated method stub
      
   }

   @Override
   public E top() {
       // TODO Auto-generated method stub
       return null;
   }

   @Override
   public E pop() {
       // TODO Auto-generated method stub
       return null;
   }

   @Override
   public int size() {
       // TODO Auto-generated method stub
       return super.size();
   }
  
   @Override
   public boolean isEmpty() {
       // TODO Auto-generated method stub
       return super.isEmpty();
   }
  
}

2. (2) Implement MyLinkedListQueue by extending LinkedList.

import java.util.LinkedList;
import net.datastructures.*;

public class MyLinkedListQueue<E> extends LinkedList<E> implements Queue<E>{

   @Override
   public void enqueue(E e) {
       // TODO Auto-generated method stub
      
   }

   @Override
   public E first() {
       // TODO Auto-generated method stub
       return null;
   }

   @Override
   public E dequeue() {
       // TODO Auto-generated method stub
       return null;
   }
  
   @Override
   public int size() {
       // TODO Auto-generated method stub
       return super.size();
   }
  
   @Override
   public boolean isEmpty() {
       // TODO Auto-generated method stub
       return super.isEmpty();
   }

}

Explanation / Answer

1. The MyArrayStack class can be implemented by extending ArrayList by the code given below.

public class MyArrayStack<E> extends ArrayList<E> implements Stack<E> {

public MyArrayStack() {

super();

}

Public MyArrayStack(int initialsize) {

Super(initialsize);

   @Override
   public void push(E e) {
add(e);

Return e;      
   }

   @Override
   public E top() {
      

int n = size();

if (n<=0){

       return null;

else {

return get(n-1);
   }

}

   @Override
   public E pop() {
       int n= size();

if ( n<=0){


       return null;
   } else return remove(n-1);

}

}

   @Override
   public int size() {
               return super.size();
   }
  
   @Override
   public boolean isEmpty() {

       return super.isEmpty();
   }
  
}

2. The MyLinkedListQueue can be implemented by extending LinkedList by the code given below :

import java.util.LinkedList;

import net.datastructures.*;

public class MyLinkedListQueue<E> extends LinkedList<E> implements

Queue<E>{

   @Override
   public void enqueue(E e) {

Node<E> node = new Node<E> (e);

      if (isEmpty())

         front = node;

      else

         rear.setNext (node);

      rear = node;

      count++;

   }

if(isEmpty())
throw new QueueEmptyException(“Queue”);

return front.getElement();

if(isEmpty())
throw new QueueEmptyException(“Queue”);

E result = front.getElement();

front = front.getNext();

count--;

if (isEmpty())

rear=null;

return result;

}
  
  
   @Override
   public int size() {
               return count();
   }
  
   @Override
   public boolean isEmpty() {
      
       return (front==rear);
   }

}