Friday, October 25, 2013

QUEUE USING LINKED LIST IN JAVA.

/*

TOPIC: QUEUE USING LINKED LIST.
DATE:16/8/2012

*/
import java.io.*;
class Node
{
Object element;
Node next;

Node()
{
this(null,null);
}
Node(Object e,Node n)
{
element=e;
next=n;
System.out.println("A node is created");
}
Object getElement()
{
return element;
}
Node getNext()
{
return next;
}
void setElement(Object newEl)
{
element=newEl;
}
void setNext(Node newNext)
{
next=newNext;
}
}
class Queue
{
Node tail;
Node head;
int size;
Queue()
{
this(null,null,0);
}
Queue(Node h,Node t,int size)
{
head=h;
tail=t;
this.size=size;
System.out.println("NEW QUEUE CREATED");
}
void insert(Object obj)
{
Node node=new Node();
node.setElement(obj);
node.setNext(null);
if(size==0)
head=node;
else
tail.setNext(node);
tail=node;
size++;
}
boolean isEmpty()
{
if (size==0)
return true;
else
return false;
}
Object remove() throws Exception
{
Object obj;
if(isEmpty())
throw new Exception("Queue is empty action prohibited");
obj=head.getElement();
head=head.getNext();
size--;
if(isEmpty())
tail=null;
return obj;
}
void display() throws Exception
{
Node q=head;
if(isEmpty())
throw new Exception("cannot display as Queue is empty");
else
{
for(int i=0;q.next!=null;i++)
{
System.out.println(q.getElement());
q=q.next;
}
}
}
void destroy()throws Exception
{
if(isEmpty())
throw new Exception("Queue is empty");
head=null;
tail=null;
size=0;
}
}
class Demo
{
public static void main(String args[])throws Exception
{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
Node p,z;
p=new Node();
z=new Node();
System.out.println("enter data for head");
Object u=br.readLine();
p.setElement(u);
System.out.println("enter data for tail");
u=br.readLine();
z.setElement(u);
p.setNext(z);
System.out.println("enter size of the queue");
int n=Integer.parseInt(br.readLine());

Queue q;
q=new Queue(p,z,n);
int ch;


one:for(int i=1;i>0;i++)
{
System.out.println();
System.out.println("1.insert element");

System.out.println("2.Remove");
System.out.println("3.Display");
System.out.println("4.Check empty");
System.out.println("5.Destroy");
System.out.println("6.exit");

ch=Integer.parseInt(br.readLine());
switch(ch)
{
case 1:
System.out.println("enter object");
Object o=br.readLine();
q.insert(o);
break;
case 2:
System.out.println(q.remove()+"   was removed");
break;
case 3:
q.display();
break;
case 4:
System.out.println("QUEUE ISEMPTY: "+q.isEmpty());
break;
case 5:
q.destroy();
q=null;
System.gc();
break;
case 6:
System.out.println("thank you-coded by TG");
break one;
}
}
}
}
/*
OUTPUT:
A node is created
A node is created
enter data for head
hello
enter data for tail
545sdsd
enter size of the queue
5
NEW QUEUE CREATED

1.insert element
2.Remove
3.Display
4.Check empty
5.Destroy
6.exit
1
enter object
5
A node is created

1.insert element
2.Remove
3.Display
4.Check empty
5.Destroy
6.exit
1
enter object
hellisheavan
A node is created

1.insert element
2.Remove
3.Display
4.Check empty
5.Destroy
6.exit
1
enter object
gm
A node is created

1.insert element
2.Remove
3.Display
4.Check empty
5.Destroy
6.exit
1
enter object
6483
A node is created

1.insert element
2.Remove
3.Display
4.Check empty
5.Destroy
6.exit
3
hello
545sdsd
5
hellisheavan
gm

1.insert element
2.Remove
3.Display
4.Check empty
5.Destroy
6.exit
3
hello
545sdsd
5
hellisheavan
gm

1.insert element
2.Remove
3.Display
4.Check empty
5.Destroy
6.exit
2
hello   was removed

1.insert element
2.Remove
3.Display
4.Check empty
5.Destroy
6.exit
5

1.insert element
2.Remove
3.Display
4.Check empty
5.Destroy
6.exit
6
thank you-coded by TG
*/

No comments:

Post a Comment