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

JAVA Implement following code using linked list: import java.util.Scanner; class

ID: 3603646 • Letter: J

Question

JAVA

Implement following code using linked list:

import java.util.Scanner;

class Queue {
int PPS[], front, rear, size, length;

public Queue(int n) { // Constructor
size = n;
length = 0;
PPS = new int[size];
front = rear = -1;
}

public boolean isFull() { // If full or not
if (front == 0 && rear == (size - 1))
return true;
else
return false;
}

public boolean isEmpty() { // If empty or not
if (length == 0)
return true;
else
return false;
}

public int getLength() {
return length;
}

public void enqueue(int pps) {
if (rear == -1) { // If queue is empty
rear = 0;
PPS[rear] = pps;
front = 0;
length++;
} else if ((rear + 1) < size) // If queue is not empty and have space
{
PPS[++rear] = pps;
length++;
} else if (isFull())
System.out.println("Queue is Full.");
}

public void dequeue() {
if (isEmpty()) {
System.out.println("Queue is empty.");
} else {
int deleted = PPS[front];
if (front == rear) { // If only one element is left
front = rear = -1;
} else
front++;
length--;
System.out.println("Deleted element: " + deleted);
}
}

public void print() {
if (isEmpty()) {
System.out.println("Queue is Empty.");
} else {
System.out.println(" Queue:");
int index;
for (index = front; index <= rear; index++) {
System.out.print(PPS[index] + " ");
}
System.out.println();
}
}
}

public class Welfare {
private static Scanner stream;

public static void main(String args[]) {
int capacity, ch;
stream = new Scanner(System.in);
System.out.print("Enter queue capacity: ");
capacity = stream.nextInt();
Queue queue = new Queue(capacity); // Create queue
do {
System.out.println(" Queue Options:");
System.out.println("1. Enqueue.");
System.out.println("2. Dequeue.");
System.out.println("3. Check for full.");
System.out.println("4. Check for empty.");
System.out.println("5. Get queue size.");
System.out.println("6. Exit.");
System.out.print(" Choose an option: ");
ch = stream.nextInt(); // read user's choice
switch (ch) {
case 1:
System.out.print("Enter a PPS to enqueue: ");
queue.enqueue(stream.nextInt());
break;
case 2:
queue.dequeue();
break;
case 3:
if (queue.isFull())
System.out.println("Queue is full.");
else
System.out.println("Queue is not full.");
break;
case 4:
if (queue.isEmpty())
System.out.println("Queue is empty.");
else
System.out.println("Queue is not empty.");
break;
case 5:
System.out.println("Queue size: " + queue.getLength());
break;
case 6:
break;
default:
System.out.println("Wrong choice. ");
break;
}
queue.print();
} while (ch != 6); // Exit on user's choice
}
}

Explanation / Answer

Here is java implementation of queue using linked list.

import java.io.*;       //Imports modules necessary for input and output operations

class node

{

    int data;

    node next;

    public node(int x)

    {

        data=x;

        next=null;

    }

}

class QueueOps

{

    node f=null,l=null;

    public boolean isEmpty()

    {

        if (f==null || l==null)

            return true;

        else

            return false;

    }

    public void enqueue(int x)    //Method enters element into QUEUE

    {

        if (isEmpty()==true)     //checks whether QUEUE is empty

        {

            node p=new node (x);

            f=l=p;

        }

        else

        {

            node p=new node (x);

            l.next=p;

            l=p;

        }

    }

    public int dequeue()                //Method delete last element from QUEUE

    {

        if(isEmpty()==true)

        {

            System.out.println("Queue is Empty");

            return -1;

        }

        else

        {

            int x=f.data;

            f=f.next;

            return x;

        }

    }

    public int peek() //Method results peek value in from QUEUE

    {

        if(isEmpty()==true)

        {

            System.out.println("Queue is Empty");

            return -1;

        }

        else

        {

            return(f.data);

        }

    }

    public void display()           //this method displays the elements present in QUEUE

    {

        if(isEmpty()==true)

        {

            System.out.println("Queue is Empty");

        }

        else

        {

            node temp=f;

            while (temp!=null)

            {

                System.out.print(temp.data+" ");

                temp=temp.next;

            }

        }

    }

}

public class Queueusingll

{

    public static void main(String[] args) throws IOException

    {

        BufferedReader obj=new BufferedReader(new InputStreamReader(System.in));                 //Creates object named obj to accept input integers

        int ch,x;

        QueueOps que=new QueueOps();         //defining object named que

        do

        {

            System.out.println("##MENU##");

            System.out.println("1.Insert element in queue");

            System.out.println("2.Remove element from queue");

            System.out.println("3.Peek Element in queue");

            System.out.println("4.Display queue");

            System.out.println("5. Check for empty");

            System.out.println("6.Exit");

            System.out.println("Enter your choice");

            ch=Integer.parseInt(obj.readLine());

            switch(ch)

            {

                case 1:System.out.println("Enter element to be inserted");

                    x=Integer.parseInt(obj.readLine());

                    que.enqueue(x);

                    break;

                case 2:System.out.println("Removed element:"+que.dequeue());

                    break;

                case 3:System.out.println("Peeked element:"+que.peek());

                    break;

                case 4:que.display();

                    break;

               

                case 5: System.out.println("Is Queue is Empty?:"+que.isEmpty());


                                      

            }

        }while(ch!=6); //Because we have only 5 items in menu

    }

}

/* Sample Output

##MENU##

1.Insert element in queue

2.Remove element from queue

3.Peek Element in queue

4.Display queue

5. Check for empty

6.Exit

Enter your choice

1

Enter element to be inserted

10

##MENU##

1.Insert element in queue

2.Remove element from queue

3.Peek Element in queue

4.Display queue

5. Check for empty

6.Exit

Enter your choice

1

Enter element to be inserted

20

##MENU##

1.Insert element in queue

2.Remove element from queue

3.Peek Element in queue

4.Display queue

5. Check for empty

6.Exit

Enter your choice

1

Enter element to be inserted

30

##MENU##

1.Insert element in queue

2.Remove element from queue

3.Peek Element in queue

4.Display queue

5. Check for empty

6.Exit

Enter your choice

1

Enter element to be inserted

40

##MENU##

1.Insert element in queue

2.Remove element from queue

3.Peek Element in queue

4.Display queue

5. Check for empty

6.Exit

Enter your choice

4

10 20 30 40

##MENU##

1.Insert element in queue

2.Remove element from queue

3.Peek Element in queue

4.Display queue

5. Check for empty

6.Exit

Enter your choice

3

Peeked element:10

##MENU##

1.Insert element in queue

2.Remove element from queue

3.Peek Element in queue

4.Display queue

5. Check for empty

6.Exit

Enter your choice

2

Removed element:10

##MENU##

1.Insert element in queue

2.Remove element from queue

3.Peek Element in queue

4.Display queue

5. Check for empty

6.Exit

Enter your choice

2

Removed element:20

##MENU##

1.Insert element in queue

2.Remove element from queue

3.Peek Element in queue

4.Display queue

5. Check for empty

6.Exit

Enter your choice

4

30 40

*/

import java.io.*;       //Imports modules necessary for input and output operations

class node

{

    int data;

    node next;

    public node(int x)

    {

        data=x;

        next=null;

    }

}

class QueueOps

{

    node f=null,l=null;

    public boolean isEmpty()

    {

        if (f==null || l==null)

            return true;

        else

            return false;

    }

    public void enqueue(int x)    //Method enters element into QUEUE

    {

        if (isEmpty()==true)     //checks whether QUEUE is empty

        {

            node p=new node (x);

            f=l=p;

        }

        else

        {

            node p=new node (x);

            l.next=p;

            l=p;

        }

    }

    public int dequeue()                //Method delete last element from QUEUE

    {

        if(isEmpty()==true)

        {

            System.out.println("Queue is Empty");

            return -1;

        }

        else

        {

            int x=f.data;

            f=f.next;

            return x;

        }

    }

    public int peek() //Method results peek value in from QUEUE

    {

        if(isEmpty()==true)

        {

            System.out.println("Queue is Empty");

            return -1;

        }

        else

        {

            return(f.data);

        }

    }

    public void display()           //this method displays the elements present in QUEUE

    {

        if(isEmpty()==true)

        {

            System.out.println("Queue is Empty");

        }

        else

        {

            node temp=f;

            while (temp!=null)

            {

                System.out.print(temp.data+" ");

                temp=temp.next;

            }

        }

    }

}

public class Queueusingll

{

    public static void main(String[] args) throws IOException

    {

        BufferedReader obj=new BufferedReader(new InputStreamReader(System.in));                 //Creates object named obj to accept input integers

        int ch,x;

        QueueOps que=new QueueOps();         //defining object named que

        do

        {

            System.out.println("##MENU##");

            System.out.println("1.Insert element in queue");

            System.out.println("2.Remove element from queue");

            System.out.println("3.Peek Element in queue");

            System.out.println("4.Display queue");

            System.out.println("5. Check for empty");

            System.out.println("6.Exit");

            System.out.println("Enter your choice");

            ch=Integer.parseInt(obj.readLine());

            switch(ch)

            {

                case 1:System.out.println("Enter element to be inserted");

                    x=Integer.parseInt(obj.readLine());

                    que.enqueue(x);

                    break;

                case 2:System.out.println("Removed element:"+que.dequeue());

                    break;

                case 3:System.out.println("Peeked element:"+que.peek());

                    break;

                case 4:que.display();

                    break;

               

                case 5: System.out.println("Is Queue is Empty?:"+que.isEmpty());


                                      

            }

        }while(ch!=6); //Because we have only 5 items in menu

    }

}

/* Sample Output

##MENU##

1.Insert element in queue

2.Remove element from queue

3.Peek Element in queue

4.Display queue

5. Check for empty

6.Exit

Enter your choice

1

Enter element to be inserted

10

##MENU##

1.Insert element in queue

2.Remove element from queue

3.Peek Element in queue

4.Display queue

5. Check for empty

6.Exit

Enter your choice

1

Enter element to be inserted

20

##MENU##

1.Insert element in queue

2.Remove element from queue

3.Peek Element in queue

4.Display queue

5. Check for empty

6.Exit

Enter your choice

1

Enter element to be inserted

30

##MENU##

1.Insert element in queue

2.Remove element from queue

3.Peek Element in queue

4.Display queue

5. Check for empty

6.Exit

Enter your choice

1

Enter element to be inserted

40

##MENU##

1.Insert element in queue

2.Remove element from queue

3.Peek Element in queue

4.Display queue

5. Check for empty

6.Exit

Enter your choice

4

10 20 30 40

##MENU##

1.Insert element in queue

2.Remove element from queue

3.Peek Element in queue

4.Display queue

5. Check for empty

6.Exit

Enter your choice

3

Peeked element:10

##MENU##

1.Insert element in queue

2.Remove element from queue

3.Peek Element in queue

4.Display queue

5. Check for empty

6.Exit

Enter your choice

2

Removed element:10

##MENU##

1.Insert element in queue

2.Remove element from queue

3.Peek Element in queue

4.Display queue

5. Check for empty

6.Exit

Enter your choice

2

Removed element:20

##MENU##

1.Insert element in queue

2.Remove element from queue

3.Peek Element in queue

4.Display queue

5. Check for empty

6.Exit

Enter your choice

4

30 40

*/