Pilas y Colas C++

Pilas y Colas escrito en C++, este es un solución donde se implementa en la forma de manejar los datos de entrada, esto fue ejecutado en VisualStudio y también en cualquier compilador standar, si tienes alguna duda no dudes en postearlo.

/*

Programación
Choc Cac, Victor Hugo.

*/

#include <cstdlib>
#include <iostream>

using namespace std;
const int NUMEROMAXIMO = 6;
int  VALORMAXIMO = NUMEROMAXIMO-1;

//=========================================================
//==============Declaracion de la cola=====================
struct SCola{
int elemento;
struct SCola *siguiente;
};

typedef struct SCola TCola;

typedef struct{
TCola *Adelante;
TCola *ElFin;
}Cola;

void CrearCola(Cola *cola);
void InsertarCola (Cola *cola, int x);
int RemoverCola(Cola *cola);
int LimpiarCola(Cola cola);
//==========Fin de declaracones cola=======================
//=========================================================

//=========================================================
//=======Inicio de declariones Pila========================
typedef struct
{
int tope;
int item[NUMEROMAXIMO];
}pila;

int Lleno(pila*);
int VacioPila(pila*);
void push(pila*, int);
void pop(pila*, int*);

//==========fin declaraciones de pila======================
//==========fin declaraciones de pila======================
//=========================================================

int _tmain(int argc, _TCHAR* argv[])
{
//=========================================================
//========declaracines de pilas============================
pila p;
int dato;
p.tope=0;
//=========fin de Pila=====================================
//=========================================================

//=========================================================
//=========declaraciones de cola===========================
Cola cola;
CrearCola(&cola);
int Cx;
//=========fin de cola=====================================
//=========================================================

cout << «\n\t\tPrimeros en Entrar Ultimos en Salir»;
cout << «\n\t\t\t\t===PILA===\n»;
for(int i=0;i<VALORMAXIMO;i++)
{
cout << «\nEscribe Numero: «;
cin >> dato;
push(&p,dato);
cout << «insertado…»;
}

cout << «\n»;
for(int a=0;a<VALORMAXIMO;a++)
{
pop(&p,&dato);
Cx = dato;
InsertarCola(&cola, Cx);//insertamos en la cola
cout << «\nInserto en cola y se elimino en Pila = »  << dato;
}

/*
Una vez que se inserto
en Cola imprimimos
e eleminamos la cola.
*/
cout << «\n\n\t\tPrimeros en Entrar Primeros en Salir»;
cout << «\n\t\t\t\t===COLA===\n\n»;

for(int xy=0;xy<VALORMAXIMO;xy++)
{
cout << «Imprimiendo y elimando Cola: » <<  RemoverCola(&cola) << «\n»;
}
//=============fin de impresion de cola
system(«pause»);
return 0;
}

//=========================================================
//==========Inicio funciones pila==========================
void push(pila *p,int dato)
{
if(!Lleno(p))
{
(p->tope)++;
p->item[p->tope]=dato;  //elemento[1]=dato
}
else
{
cout << «\nDesbordamiento de bufer»;
}
}

void pop(pila *p,int *dato)
{
if(!VacioPila(p))
{
*dato=p->item[p->tope];
(p->tope)–;
}
else
{
cout << «\nDesbordamiento de bufer»;
}
}

int Lleno(pila *p)
{
return(p->tope==VALORMAXIMO);
}

int VacioPila(pila *p)
{
return(p->tope==0);
}
//==========fin funciones de pila==========================
//=========================================================

//=========================================================
//==========Inicio funciones de cola=======================
void CrearCola(Cola *cola)
{
cola->Adelante=cola->ElFin=NULL;
}

void InsertarCola (Cola *cola, int x)
{
TCola *nuevo;
nuevo=(TCola*)malloc(sizeof(TCola));
nuevo->elemento=x;
nuevo->siguiente=NULL;
if(LimpiarCola(*cola))
{
cola->Adelante=nuevo;
}
else
cola->ElFin->siguiente=nuevo;
cola->ElFin=nuevo;
}

int RemoverCola (Cola *cola)
{
int temp=NULL;
if(!LimpiarCola(*cola))
{
TCola *nuevo;
nuevo=cola->Adelante;
temp=cola->Adelante->elemento;
cola->Adelante=cola->Adelante->siguiente;
free(nuevo);
}
else
cout << «cola vacia: «;
return (temp);
}

int LimpiarCola(Cola cola)
{
return (cola.Adelante==NULL);
}
//==========Fin funciones de cola==========================
//=========================================================

Esta entrada ha sido publicada en Diversidad y etiquetada como . Guarda el enlace permanente.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.