You are on page 1of 3

import java.util.

Scanner;
class Stack{
private Object top;
public void add(Element e){
e.next = top;
top = e;
}
public Object remove(){
if(top==null){
System.out.println("null");
return null;
}
Element e = (Element)top;
top = e.next;
System.out.println(e.className);
return e;
}
public String toString(){
String s="";
for(Element e=(Element)top;e!=null;e=(Element)e.next){
s+=("\n\n"+e.className);
}
return s;
}
public Stack(){
}
}
class Queue{
private Element front;
private Element rear;
public Queue(){
}
public void enqueue(Element e){
if(rear == null){
rear=e;
front=e;
}else{
rear.next=e;
rear = e;
}
}
public Object dequeue(){
Object o = front;
front = (Element)front.next;
return o;
}
public String toString(){
String s="";
for(Element e=(Element)front;e!=null;e=(Element)e.next){
s+=("\n\n"+e.className);
}
return s;
}
}
class Element{
//attributes here
public int className;
public Object next;
public Element(){
next=null;
}
}
public class DataStructures{
static Stack stack;
static Queue queue;
static int c=0;
public static Element create(){
Element e = new Element();
e.className = c;
c++;
return e;
}
public DataStructures(){
}
public static void main(String args[]){
int n=0;
stack = new Stack();
queue = new Queue();
Scanner scanner = new Scanner(System.in);
mainmenu:
do{
System.out.println("*******DATA STRUCTURES********\n");
System.out.println(" 1:Stack\n 2:Queue\n
3:Exit\n");
n = scanner.nextInt();
if(n==1){
do{
System.out.println("-----STACK-------\n"
+" 1:create new element and add to
stack\n"+
" 2:remove top of the stack\n"+
" 3:print stack\n"+" 4:main m
enu\n"+
" 5:exit\n");
n = scanner.nextInt();
switch(n){
case 1:
stack.add(create());
break;
case 2:
stack.remove();
break;
case 3:
System.out.println(stack
);
break;
case 4:
continue mainmenu;
}
}while(n!=5);
n=0;
}
if(n==2){
do{
System.out.println("-----QUEUE-------\n"
+" 1:create new element and add to
queue\n"+
" 2:dequeue\n"+
" 3:print queue\n"+" 4:main m
enu\n"+
" 5:exit\n");
n = scanner.nextInt();
switch(n){
case 1:
queue.enqueue(create());
break;
case 2:
queue.dequeue();
break;
case 3:
System.out.println(queue
);
break;
case 4:
continue mainmenu;
}
}while(n!=5);
n=0;
}
if(n==3){
n=0;
}
}while(n!=0);

}
}

You might also like