PRIORITY QUEUES USING LINKED LISTS
import java.io.*; class node { int n,pri; node prev,next; } class Queuepriority { public static void main(String arg...
https://www.computersprofessor.com/2016/06/priority-queues-using-linked-lists.html?m=0
import java.io.*;
class node
{
int n,pri;
node prev,next;
}
class Queuepriority
{
public static void
main(String args[])throws IOException
{
BufferedReader
br=new BufferedReader(new InputStreamReader(System.in));
int ch;
node
p,q=null,front=null,rear=null;
do
{
System.out.println("1:insertion\n2:deletion\n3:display");
System.out.println("enter
u r choice");
ch=Integer.parseInt(br.readLine());
switch(ch)
{
case 1:
p=new node();
System.out.println("enter
u r data");
p.n=Integer.parseInt(br.readLine());
System.out.println("enter
u r priority");
p.pri=Integer.parseInt(br.readLine());
p.prev=null;
if(front==null)
{
front=p;
rear=p;
}
else
{
rear.next=p;
p.prev=rear;
rear=p;
}
break;
case 2:
if(front==null)
{
System.out.println("queue
is empty");
}
else
{
for(p=front;p != null;p=p.next)
{
for(q=front.next;q != null;q=q.next)
{
if(p.pri > q.pri)
{
int
temp=p.pri;
p.pri=q.pri;
q.pri=temp;
temp=p.n;
p.n=q.n;
q.n=temp;
}
}
}
System.out.println("element"+front.n+"deleted");
front=front.next;
front.prev=null;
}
break;
case 3:
if(front != null)
{
for(p=front;p != null;p=p.next)
{
System.out.println("priority\t"+p.pri+"data\t"+p.n);
}
}
else
{
System.out.println("queue
is empty");
}
break;
}
}while(ch!=4);
}
}
OUTPUT:
1:insertion
2:deletion
3:display
enter u r choice
1
enter u r data 99
enter u r priority
4
1:insertion
2:deletion
3:display
enter u r choice
1
enter u r data 77
enter u r priority
2
1:insertion
2:deletion
3:display
enter u r choice
1
enter u r data 88
enter u r priority
1
1:insertion
2:deletion
3:display
enter u r choice
3
priority 4 data
99
priority 2 data
77
priority 1 data
88