M3

Page 11

© FUOC • P06/05001/00577 • Mòdul 3

11

Contenidors seqüencials

p = <crida al constructor>(); p.empilar(7); p.cim(); p.empilar(4); p.desempilar(); p.empilar(2); p.empilar(8);

Normalment, podem arribar al mateix estat mitjançant diverses seqüències de crides diferents. Per exemple, també podem arribar a la pila esmentada si eliminem la crida a cim. I també si eliminem alhora les crides p.empilar(4) i p.desempilar().

Observeu, doncs, com les operacions cim i desempilar són prescindibles a l’hora d’obtenir la pila de la figura 3. Per tant, les úniques operacions necessàries per a construir aquesta pila són el constructor i empilar.

Estenent aquesta idea d’una pila concreta (un estat concret) a qualsevol pila o estat, direm que el conjunt d’operacions constructores serà aquell conjunt mínim d’operacions que ens permetrà, a partir d’una seqüència de crides a operacions d’aquest conjunt, construir qualsevol estat per a un contenidor.

Vegem la classificació de les operacions de la pila segons aquest criteri:

• Operacions constructores. Són constructor i empilar. Una combinació adequada de crides a aquestes dues operacions ens permet construir qualsevol pila.

• Operacions modificadores. És l’operació desempilar. Aquesta operació modifica la pila traient-ne l’element del cim. Com que sempre serem capaços de construir qualsevol pila cridant únicament a constructor i a empilar, aquesta operació és modificadora (i no constructora).

• Operacions consultores. Són estaBuit i cim, junt amb les altres operacions definides a Contenidor (nombreElements i elements). Aquestes operacions ens permeten consultar l’estat de la pila sense modificar-lo.

Una de les característiques del contenidor pila és que, si mirem el contenidor com una seqüència d’elements, les operacions que ens permeten afegir, esborrar i consultar elements de la seqüència treballen sempre sobre el mateix extrem. Això proporciona el comportament LIFO (“el darrer que hi entra és el primer que en surt”) característic de les piles. Redefinint aquest comportament podem obtenir altres contenidors seqüencials.

Excepció L’operació elements definida a Contenidor és una excepció a aquest principi que comentarem més endavant en aquest mòdul.


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.