Pilas y Colas

Páginas: 7 (1709 palabras) Publicado: 19 de abril de 2012
Instituto Politécnico Nacional

Escuela Superior de Cómputo







Estructura de datos

Reporte de pilas y cola


Introducción teórica de Pila

Una pila es un conjunto ordenado de elementos homogéneos que se pueden agregar y eliminar solo por un extremo llamado tope. La pila es muy parecida a lo que es un arreglo, debido a la forma en que se organiza la información, sin embargouna pila y un arreglo son comas completamente distintas. La cantidad de elementos de un arreglo es fija, mientras que una pila su tamaño se modifica de forma dinámica (siempre y cuando la implementación sea dinámica).









| |
| |
|5 |
|3 |












Otra de sus características, es que debido a su comportamiento se lellama estructura LIFO (Last In First Out) en español (último en entrar, primero en salir).
Para el manejo de los datos se cuenta con dos operaciones básicas:
1. Apilar (push): coloca un objeto en la pila.

2. Retirar o desapilar (pop): función inversa de push, retira el último elemento apilado

En todo momento solo se tiene acceso a la parte superior de la pila, es decir, al último objetoapilado llamado TOS, siglas en ingles de Top of Stack (parte superior de la pila).
Una analogía en la vida cotidiana de una pila, vendría siendo al lavar los platos, ya que colocar un plato sobre otro seria la función (push) y el primero en ser lavado es el ultimo en haber sido apilado.








IMPLEMENTACION ESTATICA
#include
#include
#include "menu.h"
#define M 10
#defineLONG_CADENA 100
#define NUM_OPCIONES 8

typedef struct{
int datos[M];
int tope;
}Pila;

void crearPila(Pila *pila);
int esllena(Pila pila);
int esvacia(Pila pila);
void push(Pila *pila, int a);
void pop(Pila *pila);
int peek(Pila *pila);
void mostrar(Pila pila);

enum opciones{CREARPILA=1,ESVACIA,ESLLENA,ANNADIR,ELIMINAR,TOPE,MOSTRAR,SALIR};

int main(){

charopciones[][LONG_CADENA]={{"CREAR PILA"},{"LA PILA ESTA VACIA"},{"LA PILA ESTA LLENA"},{"ANNADIR ELEMENTO"},{"ELIMINAR ELEMENTO"},{"ELEMENTO TOPE"},{"MOSTRAR PILA"},{"SALIR"}};
enum opciones e_op;
int V,L,T,a;
Pila p;

do{
e_op=menu(opciones, NUM_OPCIONES);
switch (e_op){

case CREARPILA:
crearPila(&p);
printf("PILA CREADA\n");system("pause");
system("cls");
break;

case ESVACIA:
V=esvacia(p);
if(V==1){
printf("LA PILA ESTA VACIA\n");
}
else{
if(V!=1){
printf("LA PILA NO ESTA VACIA\n");
}}
system("pause");
system("cls");
break;

case ESLLENA:
L=esllena(p);
if(L==1){
printf("LA PILA ESTA LLENA\n");
}
else{
if(L!=1){printf("LA PILA NO ESTA LLENA\n");
}
}
system("pause");
system("cls");
break;

case ANNADIR:
printf("ELEMENTO A ANNADIR: ");
scanf("%d",&a);
push(&p,a);
system("pause");system("cls");
break;

case ELIMINAR:
pop(&p);
system("pause");
system("cls");
break;

case TOPE:
T=peek(&p);
system("pause");
system("cls");
break;

case MOSTRAR:
mostrar(p);...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • pilas y colas
  • Pilas y colas
  • Pilas y colas
  • Pilas y colas
  • Colas y pilas
  • Colas Pilas
  • Pila Y Cola
  • Pilas y Colas

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS