Implementeu un nou mètode de la classe Stack que intercambi el element del mig d’aquest amb el del top. En el cas especial en que no hi hagi element del mig (el tamany de la pila es parell), llavors no farà res.
Dentre els fitxers que s’adjunten en aquest exercici, trobareu stack.old.hpp, a on hi ha una implementació de la classe genèrica Stack. En primer lloc, haureu de fer:
cp stack.old.hpp stack.hpp
A continuació, haureu de buscar dins stack.hpp la part:
//void moveTopToMiddle() //PRE: La pila implicita pot estar buida o no //POST: Intercambia de posicio l'element del mig i el del top
Haureu de descomentar les dues línies que s’indiquen i implementar aquest mètode. No toqueu la resta de la implementació de la classe, excepte si, per algun motiu, considereu que necessiteu afegir algun mètode auxiliar a la part privada.
D’entre els fitxers que s’adjunten a l’exercici també hi ha program.cpp (programa principal) i Makefile per a compilar. Per a pujar la vostra solució, heu de crear el fitxer solution.tar així:
tar cf solution.tar stack.hpp
Entrada
Sortida
Input
push h top push b push o push d push a moveTopToMiddle top moveTopToMiddle push k push l top push m push n moveTopToMiddle top push ! top
Output
h o l a !
Input
push a push e push i push m top push a push k push o push a moveTopToMiddle top push a push r push t push a moveTopToMiddle push q push t top push r top push e push l push a moveTopToMiddle push z push o push o push i push l push i moveTopToMiddle top moveTopToMiddle push c top push r push b push u moveTopToMiddle top push f push j push m push u push o push l top moveTopToMiddle push a top push y push j push k push h top moveTopToMiddle top push n top push n moveTopToMiddle top push a push s moveTopToMiddle push r top
Output
m a t r i c u l a h o n o r