publicclass Queue {
private Element head;
private Element tail;
publicint size;
publicvoidenqueue(Element e){
if(tail == null){
head = e;
tail = e;
}else{
tail.next = e;
tail = e;
}
size++;
}
public Element dequeue(){
if(head == null){
returnnull;
}else{
Element p = head;
head = head.next;
p.next = null;
if(head == null){
tail = null;
}
size--;
return p;
}
}
}
publicclass Stack {
public Element top;
publicint sum;
public Element pop(){
if(top == null){
returnnull;
}else{
Element p = top;
sum -= top.value;
top = top.next;
p.next = null;
return p;
}
}
publicvoidpush(Element e){
if(top == null){
top = e;
}else{
e.next = top;
top = e;
}
sum += e.value;
}
}