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==========================
//=========================================================