Pilas c++

Solo disponible en BuenasTareas
  • Páginas : 3 (508 palabras )
  • Descarga(s) : 0
  • Publicado : 21 de octubre de 2010
Leer documento completo
Vista previa del texto
Concepto de Pila 
Es  un  tipo  especial  de  lista  abierta  en  la  que  sólo se pueden insertar y eliminar nodos en uno  de  los  extremos  de  la  lista.  Estas  operaciones  se  conocen como  "push"  y  "pop",  "empujar"  y  "tirar". Además,  las escrituras  de datos  siempre  son inserciones de nodos, y las lecturas siempre  eliminan el nodo leído.

Comportamiento LIFO (Last Input First Output) 
El comportamiento es de ultima entrada primera  salida.

Declaración del Nodo Para la Pila 
typedef struct _nodo  {  int dato;  struct _nodo *siguiente;  } tipoNodo; typedef tipoNodo *pNodo;  typedef tipoNodo *Pila;

Operaciones básicas con pilas 

n  Push: Añadir un elemento al final de la pila.  n  Pop: Leer y eliminar un elemento del final de 

la pila PUSH insertar en pila vacía 
El proceso es muy simple:  1.  nodo­>siguiente apunte a NULL.  2.  Pila apunte a nodo.

PUSH insertar en Pila no vacía Se inicia con un nodo a insertar, con un apuntador que  apunte a él, y de una pila, en este caso no vacía:  El proceso es el siguientey sencillo:  1.Hacemos que nodo­>siguiente apunte a Pila. 
2.Hacemos que Pila apunte a nodo. POP leer y eliminar un elemento 
Partiremos de una pila con uno o más nodos, y  usaremos un apuntador auxiliar, nodo: 

1 de 2

POP leer y eliminar un elemento 
1.  Hacemos que nodo apunte al primer elemento de la pila, es decir a Pila.  2.  Asignamos a Pila la dirección del segundo nodo de  la pila: Pila­>siguiente.  3.  Guardamos el contenido del nodo para devolverlo  como retorno, recuerda que la operación pop equivale a leer y borrar.  4.  Liberamos la memoria asignada al primer nodo, el  que queremos eliminar. 

2 de 2

Algor itmo de la función PUSH 
1.  Se crea un nodo para el valor que se colocará en la pila.  2.  Hacemos que nodo­>siguiente apunte a Pila.  3.  Hacemos que Pila apunte a nodo.

Código para PUSH en una pila 
void Push(Pila *pila, int v)  { ...
tracking img