¡¡¡ MAS SOBRE PILAS!!!


Característica de una Pila

* Los elementos se eliminan en orden
inverso al que se insertaron


* El último elementos que se inserta
en la pila es el primero en salir

* Estructura LIFO: Last In First Out




Ejemplos reales

 Pila de platos o Libros
 Ordenamiento de latas en conserva de los supermercados
 Envase de pelotas de Tenis
 Cargador de Armas AutomáticasV




Características

 La representación gráfica típica:

El elementos superior se llama TOPE

No se pueden extraer los elementos C, B y A sin antes extraer D
B
A
D
C
El uso de las pilas es independiente de
la implementación interna






Operaciones Elementales

 Insertar o agregar un elemento a la Pila:
PUSH

También se puede decir poner o apilar
NO existe limite o restricción para agregar elementos (crece indefinidamente)

 Quitar un elemento de la Pila: POP
Sacar o desempilar







Operaciones Elem. (cont)

 Ejemplo:

push push push pop push
Pila
vacía
Mas Operaciones

 Comprobar si la pila está vacía.

Operación necesaria para saber si se pueden
eliminar elementos
NO se puede eliminar de una pila vacía

 Otras:
Obtener un elemento de la pila
Imprimir los elementos de la pila
Ver el elemento en el tope de la pila sin
removerlo



Implementaciones

 Las pilas son estructuras de datos fundamentales: no están definidas en
los Lenguajes de Programación como los registros

 Las pilas se pueden implementar mediante dos opciones:
Arreglos (opción estática)
Listas Enlazadas (opción dinámica)





Implementación con arreglos

 Se necesita un vector de tamáño N yuna variable numrica llamada tope que indique la posicion del ultimo elemento colocado en la pila (vector).

 Previamente se limita el maximo numero de elementos que la pila puede
contener (tamao del vector). Ejemplo:

#define N 10

Implementación

 Usando estructuras en C se puede usar una sola variable que tenga a:
Los elementos de la pila (el vector) y,La posición del tope




*************_______________________________________**************




Implementación: push
 La función de inserción en C sería:
void push (pila *p, int dato)
{ p->tope = p->tope + 1;
p->dato[p->tope]  dato;
}
 p->tope: Posición de elemento al tope
de la pila





Implementación: pop
 int pop (pila *p)
{ int dato;
dato  p->dato[p->tope];
p->tope = p->tope - 1;
return (dato);
}

No hay comentarios:

Publicar un comentario