Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Datos II
Pilas y su implementacin en C++
Dr. Edgard I. Bentez-Guerrero
cursofei@gmail.com
1
Contenido
Definicin
Operaciones
Implementacin esttica en C++
Implementacin dinmica en C++
Pila
4
3
2
1
x
x
x
x
x
Pila
Cima
Operaciones bsicas
Push: Aadir un
elemento al final de la
pila
Push
Pop
Ejemplo de funcionamiento
Operacin
Pila
Push(a)
Push(b)
ab
Pop()
Push(c)
ac
Push(d)
acd
Pop()
ac
Elemento
extrado
void push(int v) {
if (! full()) {
valores[++tope]=v;}
else {
cout << "No es posible
agregar un elemento" << endl;
}
}
int pop() {
if (! empty()) {
return (valores[tope--]);}
else {
cout << "No es posible
extraer un elemento" << endl;
return (0);
}
}
int empty() {
if (tope==-1) return 1;
else return 0;
}
int full() {
if (tope== MAX-1) return 1;
else return 0;
}
};
class nodo {
private:
int valor;
nodo *siguiente;
public:
nodo(int v, nodo *sig)
{
valor = v;
siguiente = sig;
}
int getValor() {return (valor);}
nodo *getSiguiente() {
return(siguiente); };
};
8
10
tope
despus
11
tope
antes
despus
tope
Si la pila slo tiene un nodo, el proceso sigue siendo vlido, ya que el siguiente del tope es NULL, y despus de
eliminar el ltimo nodo la pila quedar vaca y el valor de tope ser NULL.
12
13
cin.get();
return 0;
}
14