Sei sulla pagina 1di 4

#include <iostream>

#include <stdlib.h>
#include <stdio.h>
using namespace std;

//Angy Lizeth Pabon Villar & Sonia Alejandra Morales Ardila


// ESTRUCTURA Y BASES DE DATOS GRUPO 1
// Codigo "Cola Circular con estrura"

// Codigo de estructura de un nodo de la cola circular


//Los nodos están compuestos por un espacio para un dato y una señal para el dato
siguiente
//las colas se componen de nodos y cuando uno de los nodos marca null
//es por que la cola esta llena o llegó a la posicion final.

struct nodo
{
int nro;
struct nodo *sgte;
};

//Código de Estructura principal de la cola

struct cola
{
nodo *cabeza;
nodo *cola ;
};

//Código Insertar

void insertar( struct cola &q, int valor )


{

struct nodo *aux = new(struct nodo);

aux->nro = valor;
aux->sgte = NULL;

if( q.cabeza == NULL)


q.cola = aux;

else
(q.cola)->sgte = aux;

q.cola = aux;
}

//Código Eliminar

int eliminar( struct cola &q )


{
int num ;

struct nodo *aux ;

aux = q.cabeza;
num = aux->nro;
q.cabeza = (q.cabeza)->sgte;
delete(aux);

return num;
}

//Código Visualizar Cola

void muestraCola( struct cola q )


{
struct nodo *aux;

aux = q.cabeza;

while( aux != NULL ){

cout<<" "<< aux->nro ;


aux = aux->sgte;
}
}

//Código Vaciar la Cola

void vaciaCola( struct cola &q)


{
struct nodo *aux;

while( q.cabeza != NULL){

aux = q.cabeza;
q.cabeza = aux->sgte;
delete(aux);
}

q.cabeza = NULL;
q.cola = NULL;

}
// Código del Menu

void menu()
{
printf("\n MENU \n");
printf("\n 1. INSERTAR \n");
printf("\n 2. ELIMINAR \n");
printf("\n 3. MOSTRAR COLA \n");
printf("\n 4. VACIAR COLA \n");
printf("\n 5. SALIR \n");
printf("\n INGRESE OPCION: ");

//Funcion Principal
//la función principal se modificó para agregar la estructura y que funcionara
correctamente.

int main()
{
struct cola q;

q.cabeza = NULL;
q.cola = NULL;

int dato;
int op;
int x ;

system("color 0A"); //Cambio de color de el menú

do
{
menu(); cin>> op;

switch(op)
{
case 1:

printf("\n NUMERO A INSERTAR: ");


scanf("%d", &dato);
insertar( q, dato );
printf("\n\n\t\tNumero %d insertado...\n\n", dato);
break;

case 2:

x = eliminar(q);
printf("\n\n\t\tNumero %x eliminado...\n\n", x);
break;

case 3:

printf("\n\n MOSTRANDO COLA\n\n");


if(q.cabeza!=NULL) muestraCola( q );
else printf("\n\n\tCola vacia...!");
break;

case 4:

vaciaCola( q );
printf("\n\n\t\t Vacio \n\n");
break;

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

}while(op!=5);

return 0;
}

Potrebbero piacerti anche