ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Pila Y Colas


Enviado por   •  19 de Noviembre de 2013  •  5.098 Palabras (21 Páginas)  •  348 Visitas

Página 1 de 21

pilas

#include <iostream>

using namespace std;

struct nodo{

int nro;

struct nodo *sgte;

};

typedef nodo *ptrPila; // creando nodo tipo puntero( tipo de dato )

/* Apilar elemento

---------------------------------------------------------------------*/

void push( ptrPila &p, int valor )

{

ptrPila aux;

aux = new(struct nodo); // apuntamos al nuevo nodo creado

aux->nro = valor;

aux->sgte = p ;

p = aux ;

}

/* Desapilar elemento(devuelve elemento)

---------------------------------------------------------------------*/

int pop( ptrPila &p )

{

int num ;

ptrPila aux;

aux = p ;

num = aux->nro; // asignamos el primer vamor de la pila

p = aux->sgte ;

free(aux);

return num;

}

/* Muestra elementos de la pila

---------------------------------------------------------------------*/

void mostrar_pila( ptrPila p )

{

ptrPila aux;

aux = p; // apunta al inicio de la lista

while( aux !=NULL )

{

cout<<"\t"<< aux->nro <<endl;

aux = aux->sgte;

}

}

/* Eliminar todos los elementos de la pila

---------------------------------------------------------------------*/

void destruir_pila( ptrPila &p)

{

ptrPila aux;

while( p != NULL)

{

aux = p;

p = aux->sgte;

free(aux);

}

}

/* Menu de opciones

----------------------------------------------------------------------*/

void menu()

{

printf("\n\t PILAS\n\n");

printf(" 1. Apilar\n\n");

printf(" 2. Qitar pila\n\n");

printf(" 3. Ver pila\n\n");

printf(" 4. Eliminar pila\n\n");

printf(" 5. Salir\n\n");

printf("\n Tecle una opcion:\n\n");

}

/* Funcion Principal

----------------------------------------------------------------------*/

int main()

{

ptrPila p = NULL; // creando pila

int dato;

int op;

int x ; // numero que devuelve la funcon pop

system("color 0b");

do

{

menu(); cin>> op;

switch(op)

{

case 1:

printf("\n Numero a apilar: ");

scanf("%d",&dato);

push( p, dato );

printf("\n\n\t\tNumero ", &dato, " apilado...\n\n");

break;

case 2:

x = pop( p );

printf("\n\n\t\tNumero ", &x, " desapilado...\n\n");

break;

case 3:

printf("\n\n Mostrando pila\n\n");

if(p!=NULL)

mostrar_pila( p );

else

printf("\n\n\tPila vacia..!");

break;

case 4:

destruir_pila( p );

printf("\n\n\t\tPila eliminada...\n\n");

break;

}

printf("");

system("pause"); system("cls");

}while(op!=5);

return 0;

}

colas

#include <iostream>

#include <iostream>

#include <stdlib.h>

using namespace std;

/* Estructura de los nodos de la cola

-----------------------------------------------------------------*/

struct nodo

{

int nro;

struct nodo *sgte;

};

/* Estructura de la cola

-----------------------------------------------------------------*/

struct cola

{

nodo *delante;

nodo *atras ;

};

/* Encolar elemento

------------------------------------------------------------------*/

void encolar( struct cola &q, int valor )

{

struct nodo *aux = new(struct nodo);

aux->nro = valor;

aux->sgte = NULL;

if( q.delante == NULL)

q.delante = aux; // encola el primero elemento

else

(q.atras)->sgte = aux;

q.atras = aux; // puntero que siempre apunta al ultimo elemento

}

/* Desencolar elemento

------------------------------------------------------------------*/

int desencolar( struct cola &q )

{

int num ;

struct nodo *aux ;

aux = q.delante; // aux apunta al inicio de la cola

num = aux->nro;

q.delante = (q.delante)->sgte;

free(aux); // libera memoria a donde apuntaba aux

return num;

}

/* Mostrar Cola

-------------------------------------------------------------------*/

void muestraCola( struct cola q )

{

struct nodo *aux;

aux = q.delante;

while( aux != NULL )

{

printf(" %d\n\n ", aux->nro) ;

aux

...

Descargar como (para miembros actualizados) txt (17 Kb)
Leer 20 páginas más »
Disponible sólo en Clubensayos.com