Está en la página 1de 13

Algortmica y Estructura de Datos II

PILAS

Pila
Una Pila es un tipo especial de lista lineal en la cual la insercin y borrado de nuevos elementos se realiza slo por un extremo, el cual es denominado cima o tope.

En esta estructura solo se puede efectuar tres operaciones: 1. aadir un elemento apilar o push. 2. eliminar un elemento desapilar o pop. 3. ver un elemento cima Si se ingresan varios elementos en la pila y despus se sacan de esta, el ltimo elemento en ingresar ser el primero en salir, en ingles LIFO (last in, first out).

Cmo funciona internamente una pila?


Cuando se almacena una pila en la memoria de un computador, los elementos realmente no se mueven arriba y abajo, a medida que se ingresa o se retira de la lista. Simplemente es la posicin de la cima la que vara. Un puntero denominado, cima de pila, indica la posicin de la cima de la pila, otro puntero se utiliza para determinar la base de la pila que mantiene el mismo valor mientras existe la pila.

Para todos los efectos, las pilas son como las listas lineales en cuanto a las operaciones que se pueden realizar sobre ellas:
Aadir o insertar elementos. (solo al principio) Borrar elementos. (solo al principio) Buscar o localizar elementos. Moverse a travs de la pila.

Podemos definir la PILA como una lista enlazada especial, entonces para su implementacin se har uso de la clase Nodo y la clase Lista. Crearemos una nueva clase llamada cPila la cual hereda datos de la clase Lista, y solo habra que implementarle los mtodos propios del manejo de las pilas.

Visin del conceptor: Diseo del TAD cNodo Nombre de la Clase: cNodo Descripcin genrica Un nodo es un registro que contiene un dato de inters y al menos un puntero para referenciar (apuntar) a otro nodo.

Descripcin Formal Nombre: cNodo Elementos aDato: Objeto

aSiguiente: cNodo

Donde objeto es una clase que representa cualquier cosa del mundo real.

Visin del conceptor: Diseo del TAD cLista

Nombre de la Clase: cLista Descripcin genrica Una lista puede definirse como una n-tupla dinmica ordenada. L=(e1, e2,e3..en) Descripcin Formal Nombre: cLista Elementos aPrimerNodo: cNodo
cLista -aPrimerNodo cLista() PrimerNodo() EsVacia() InsertarInicio(dato) EliminarInicio() Longitud()

Donde cNodo es una clase del tipo Nodo

Visin del conceptor: Diseo del TAD cPila Nombre de la Clase: cPila hereda de CLista Descripcin genrica
Una pila es una estructura de datos de acceso restrictivo a sus

elementos. A sus datos solo se puede acceder por un solo extremo, denominado cima (top). En esta estructura solo se puede efectuar dos operaciones: aadir o eliminar un elemento acciones que se conocen como apilar (push) y desapilar (pop).

Descripcin Formal Nombre: cPila Elementos

cPila cPila() PVacia() apilar(dato) desapilar() cima()

Nombre de la Clase: cPila


[publico] clase cPila cLista Inicio
// elementos // Operaciones Primitivas

// Constructor: construye una pila vaca [publico] cPila() Inicio

Fin

// Operaciones Derivadas

[publico] PVacia(): booleno


//operacin que nos permite saber si la pila esta vaca

Inicio

devolver EsVacia() // mtodo definido en clase cLista


fin
[publico] apilar(dato:Objeto)
//operacin que nos permite insertar 1 elemento al principio de la pila

Inicio InsertaInicio(dato) // mtodo definido en clase cLista fin

// Operaciones Derivadas [publico] desapilar()


//operacin que nos permite eliminar 1 elemento al principio de la pila

Inicio
EliminarInicio() // mtodo definido en clase cLista Fin

Y otros mtodos? Imprimir() Longitud()

También podría gustarte