Sunteți pe pagina 1din 14

PILAS (LIFO)

CAP: Ingeniera De Sistemas

TDA - LIFO

Definir

Estructura

Con

Logica

Realizar

Operaciones

Struct LIFO
dato sgte

Campo dato: Que nos va a servir para guardar un valor Campo sgte : Que nos va a servir para guardar una direccin

Inicializa Pila

Push
Pop

Realizar las diferentes operaciones de acuerdo a la filosofa de la pila como son :

Mostrar Pila Eliminar Pila

TDA LIFO

LIFO
In Last First Out

PILAS EN C++
#include <iostream> using namespace std; struct LIFO{ int dato; struct LIFO *sgte; }; typedef LIFO *ptrPila;

APILAR ELEMENTOS
void push( ptrPila &cab, int x ) { ptrPila n; n = new(struct LIFO); n->dato = x; n->sgte = cab ; cab = n ; }

DESAPILAR ELEMENTOS
int pop( ptrPila &cab ) { int y ; ptrPila p; p = cab ; y = p->dato cab = p->sgte; delete(p); return y; }

MUESTRA ELEMENTOS DE LA PILA


void mostrar_pila( ptrPila p ) { ptrPila cab; cab = p; while( cab !=NULL ) { cout<<"\t"<< cab->dato <<endl; cab = cab->sgte; } }

ELIMINAR TODOS LOS ELEMENTOS DE LA PILA


void eliminar_pila( ptrPila &p) { ptrPila cab; while( p != NULL) { cab = p; p = cab->sgte; delete(cab); } }

FUNCION MENU
void menu() { cout<<"\n\t IMPLEMENTACION DE PILAS \n"; cout<<"\t =======================\n\n"; cout<<" 1. APILAR "<<endl; cout<<" 2. DESAPILAR "<<endl; cout<<" 3. MOSTRAR PILA "<<endl; cout<<" 4. ELIMINAR PILA "<<endl; cout<<" 5. SALIR "<<endl; cout<<"\n INGRESE OPCION: "; }

FUNCION PRINCIPAL (main)


void main() { ptrPila p = NULL; // creando pila int dato; int op; int x ; // numero que devuelve la funcon pop do { menu(); cin>> op; if (op>5 || op<0){ cout<<"\n Opcion No Valida \n"; } else{ switch(op) { case 1: cout<< "\n NUMERO A APILAR: "; cin>> dato; push( p, dato ); cout<<"\n\n\t\tNumero " << dato << " apilado...\n\n"; break;

FUNCION PRINCIPAL (main)


case 2:

if(p==NULL){ cout<<"\n\n\t La Pila esta vacia..!"<<endl; } else{ x = pop( p ); cout<<"\n\n\t\tNumero "<< x <<" desapilado...\n\n"; }
break;

case 3: cout << "\n\n MOSTRANDO PILA\n\n"; if(p!=NULL) mostrar_pila( p ); else cout<<"\n\n\tPila vacia..!"<<endl;

break;

FUNCION PRINCIPAL (main)


case 4:
eliminar_pila( p ); cout<<"\n\n\t\tPila eliminada...\n\n"; break; } } cout<<endl<<endl; system("pause"); system("cls"); }while(op!=5); }

GRACIAS POR SU ATENCIN

S-ar putea să vă placă și