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

class single linked list f private: class node f public nod link int contents; n

ID: 3808145 • Letter: C

Question

class single linked list f private: class node f public nod link int contents; node ead. public single linked list. thead 0 void insert at head (int) void insert at tail (int) int remove at head int empty class stack 2 private single linked list public stack 2 void push (int value) single linked list insert at head (value) int pop return single linked list remove at head single linked list empty class queue 2 private single linked list f public queue 2 void enqueue (int value) single linked list insert at tail (value) int de queue single linked list. remove at head single linked list empty

Explanation / Answer

public class SingleLinkedList {
   private class Node{
       private Node link;
       private int contents;
       public Node(int element){
           contents = element;
           link = null;
       }
   }
   private Node head;
  
   public SingleLinkedList(){
       head = null;
   }
   protected void insertAtHead(int element){
       Node node= new Node(element);
       if(head==null){
           head = node;
       }
       else{
           node.link = head;
           head = node;
       }
   }
   protected void insertAtTail(int element){
       Node node= new Node(element);
       if(head==null){
           head = node;
       }
       else{
           Node temp = head;
           while(temp.link !=null){
               temp = temp.link;
           }
           temp.link = node;
       }
   }
   protected int removeFromHead(){
       if(head==null){
           System.out.println("Empty");
           return -1;
       }
       else{
           Node node = head;
           head = head.link;
           return head.contents;
       }
   }
   protected boolean isEmpty(){
       if(head==null)
           return true;
       return false;
   }
}

public class Stack_2 extends SingleLinkedList{
  
   public Stack_2(){
       super();
   }
   public void push(int element){
       insertAtHead(element);
   }
   public int pop(){
       return removeFromHead();
   }
  
   public boolean isEmpty(){
       return super.isEmpty();
   }
}

public class Queue_2 extends SingleLinkedList{
   public Queue_2(){
       super();
   }
   public void enqueue(int element   ){
       insertAtTail(element);
   }
   public int dequeue       (){
       return removeFromHead();
   }
   public boolean isEmpty(){
       return super.isEmpty();
   }
}