uoc.ei.tads
Class PilaVectorImpl<E>

java.lang.Object
  extended by uoc.ei.tads.PilaVectorImpl<E>
All Implemented Interfaces:
java.io.Serializable, Contenidor<E>, ContenidorAfitat<E>, Pila<E>

public class PilaVectorImpl<E>
extends java.lang.Object
implements Pila<E>, ContenidorAfitat<E>

Seqüència que es caracteritza perquè es consulta i s'esborra el darrer element inserit: last-in-first-out (LIFO).

Since:
1.5
See Also:
Serialized Form

Field Summary
protected  E[] elements
          Taula d'elements del contenidor.
static int MAXIM_ELEMENTS_PER_DEFECTE
          Capacitat màxima, per defecte, del contenidor.
protected  int n
          Nombre d'elements que hi ha actualment al contenidor.
 
Constructor Summary
PilaVectorImpl()
          Constructor sense paràmetres (capacitat màxima, per defecte).
PilaVectorImpl(int max)
          Constructor amb un paràmetre.
 
Method Summary
 E cim()
          Accessor de lectura del darrer element afegit a la pila, si n'hi ha.
 E desempilar()
          Esborra l'element del cim de la pila, si n'hi ha algun.
 Iterador<E> elements()
          Accessor de lectura dels elements que hi ha al contenidor.
 void empilar(E elem)
          Afegeix un element a la pila, si hi cap.
 boolean estaBuit()
          Mètode per a comprovar si el contenidor està buit.
 boolean estaPle()
          Mètode per a comprovar si el contenidor està ple.
 int nombreElems()
          Accessor de lectura del nombre d'elements que hi ha al contenidor.
 java.lang.String toString()
          Mètode que sobreescriu Object.toString().
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

MAXIM_ELEMENTS_PER_DEFECTE

public static final int MAXIM_ELEMENTS_PER_DEFECTE
Capacitat màxima, per defecte, del contenidor.

See Also:
Constant Field Values

n

protected int n
Nombre d'elements que hi ha actualment al contenidor. També representa la posició on s'ha d'empilar un nou element.


elements

protected E[] elements
Taula d'elements del contenidor. Les posicions comencen pel zero.

Constructor Detail

PilaVectorImpl

public PilaVectorImpl()
Constructor sense paràmetres (capacitat màxima, per defecte).


PilaVectorImpl

public PilaVectorImpl(int max)
Constructor amb un paràmetre.

Parameters:
max - nombre màxim d'elements que pot contenir
Throws:
ExcepcioParametreIncorrecte - si la capacitat màxima de la nova pila és negativa
Method Detail

nombreElems

public int nombreElems()
Accessor de lectura del nombre d'elements que hi ha al contenidor.

Specified by:
nombreElems in interface Contenidor<E>
Returns:
nombre d'elements que conté actualment

estaBuit

public boolean estaBuit()
Mètode per a comprovar si el contenidor està buit.

Specified by:
estaBuit in interface Contenidor<E>
Returns:
cert o fals, segons si està buit o no ho està

estaPle

public boolean estaPle()
Mètode per a comprovar si el contenidor està ple.

Specified by:
estaPle in interface ContenidorAfitat<E>
Returns:
cert o fals, segons si està ple o no ho està

empilar

public void empilar(E elem)
Afegeix un element a la pila, si hi cap.

Specified by:
empilar in interface Pila<E>
Parameters:
elem - element que es vol afegir a la pila
Throws:
ExcepcioContenidorPle - si la pila està plena

desempilar

public E desempilar()
Esborra l'element del cim de la pila, si n'hi ha algun.

Specified by:
desempilar in interface Pila<E>
Returns:
element que hi havia al cim de la pila
Throws:
ExcepcioContenidorBuit - si la pila està buida

cim

public E cim()
Accessor de lectura del darrer element afegit a la pila, si n'hi ha.

Specified by:
cim in interface Pila<E>
Returns:
element del cim de la pila
Throws:
ExcepcioContenidorBuit - si la pila està buida

elements

public Iterador<E> elements()
Accessor de lectura dels elements que hi ha al contenidor. Retorna una enumeració. Es pot obtenir un llistat amb un parell de línies de codi:
 for ( Iterador it = tad.elements(); it.hiHaSeguent(); )
    System.out.println(it.seguent()); 
Enumerar és simplement enunciar l'una darrere l'altra (les coses d'una sèrie, les parts d'un tot). Però si el contenidor té definit algun tipus d'ordenació o de recorregut, l'enumeració ha de ser conseqüent i oferir els elements per ordre (FIFO, LIFO, inordre, etc.), sense alterar l'estat actual del contenidor.

Specified by:
elements in interface Contenidor<E>
Returns:
enumeració dels elements del contenidor
Throws:
ExcepcioPosicioInvalida - si es vol obtenir el següent element de l'enumeració i no n'hi ha cap o no n'hi ha cap més
See Also:
Iterador.hiHaSeguent(), Iterador.seguent()

toString

public java.lang.String toString()
Mètode que sobreescriu Object.toString(). Treu els elements separats per comes.

Overrides:
toString in class java.lang.Object
Returns:
Un String amb el llistat dels elements