Sei sulla pagina 1di 2

if(condicion) {

verdadero
} else {
if(condicion) {
verdadero
} else {
falso
}
}

var = (condicion) ? verdadero : ((condicion) ? verdadero: falso);

#include <iostream>
using namespace std;

class nodo {

private:
protected:
int valor;
nodo *siguiente;

public:
//nodo(int v, nodo *sig = NULL):
// valor(v), siguiente(sig) {}
nodo(int v, nodo *sig = NULL) {
valor = v;
siguiente = sig;
}

friend class pila;


};

typedef nodo *pnodo;

class pila {
public:
//pila() : ultimo(NULL) {}
pila() {
ultimo = NULL;
}
~pila();

private:
pnodo ultimo;

friend class funciones_pila;


};
class funciones_pila {
public:
void Push(int v);
int Pop();
};

pila::~pila() {
while(ultimo) Pop();
}
void funciones_pila::Push(int v) {
pnodo nuevo;

nuevo = new nodo(v, ultimo);


ultimo = nuevo;
}

int funciones_pila::Pop() {

pnodo nodo; /* variable auxiliar para manipular nodo */


int v; /* variable auxiliar para retorno */

if(!ultimo) return 0; /* Si no hay nodos en la pila retornamos 0 */


/* Nodo apunta al primer elemento de la pila */
nodo = ultimo;
/* Asignamos a pila toda la pila menos el primer elemento */
ultimo = nodo->siguiente;
/* Guardamos el valor de retorno */
v = nodo->valor;
/* Borrar el nodo */
delete nodo;
return v;
}

int main() {
pila Pila;

Pila.Push(20);
cout << "Push(20)" << endl;
Pila.Push(10);
cout << "Push(10)" << endl;
cout << "Pop() = " << Pila.Pop() << endl;
Pila.Push(40);
cout << "Push(40)" << endl;
Pila.Push(30);
cout << "Push(30)" << endl;
cout << "Pop() = " << Pila.Pop() << endl;
cout << "Pop() = " << Pila.Pop() << endl;
Pila.Push(90);
cout << "Push(90)" << endl;
cout << "Pop() = " << Pila.Pop() << endl;
cout << "Pop() = " << Pila.Pop() << endl;

Potrebbero piacerti anche