Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
public Lista() {
myList = new LinkedList();
}
public void cons(Object el) {
myList.addFirst(el);
}
public Object cdr() {
myList.removeFirst();
}
public Object car() {
myList.getFirst();
}
}
public Pila() {
myStack = new LinkedList();
}
public void push(Object el) {
myList.addFirst(el);
}
public Object pop() {
myList.removeFirst();
}
public Object top() {
myList.getFirst();
}
boolean isEmpty() {
return (myStack.size() == 0);
}
}
public DoppioStack() {
myStack = new LinkedList();
}
public void headPush(Object el) {
myList.addFirst(el);
}
public void tailPush(Object el) {
myList.addLast(el);
}
public Object headPop() {
myList.removeFirst();
}
public Object tailPop() {
myList.removeLast();
}
public Object headTop() {
myList.getFirst();
}
public Object tailTop() {
myList.getLast();
}
}
…………
nextWindow = myStack.removeLast(); // finestra in cima allo stack
…………
while(!A.isEmpty())
C.push(A.pop()); // C e’ una pila di appoggio
while(!C.isEmpty()) {
A.push(C.top()); // ripristina A
B.push(C.pop()); // copia in B
}
E’ immediato verificare che il costo dell’algoritmo e’ lineare.