Está en la página 1de 4

/* COLA: - El primero que llega sale.

- Tenemos dos punteros, uno para pCabeza y otro para pFinal, para aadir datos por el final y sacar datos de la cabeza. FUNCIONES: Constructor MeterEnCola (int) int SacarDeCola () int VerPrimerElemento () int EsColaVacia () int DevolverElementos () -> Devuelve en numero de elementos que hay en la cola pero sin recorrer la cola. */ #include #include #include #include #include <stdio.h> <iostream> <conio.h> <stdlib.h> <string.h>

using namespace std; class CNodo { public: CNodo(); int iDato; CNodo * pSiguiente; }; CNodo::CNodo() { iDato=0; pSiguiente=NULL; } class Cola { CNodo * pCabeza; CNodo * pFinal; int total; public: Cola(); void MeterEnCola(int); int SacarDeCola(); int VerPrimerElto(); int EsColaVacia(); int DevElto(); }; Cola::Cola() { pCabeza=NULL; pFinal=NULL; total=0;

}; int Cola::DevElto() { return total; } int Cola::EsColaVacia() //Devuelve 1 si esta vacia y 0 si esta cargada. { if(pCabeza==NULL) { return 1; } else { return 0; } } void Cola::MeterEnCola(int n) { CNodo*nodo=new CNodo(); nodo->iDato=n; if (EsColaVacia()==1) { pCabeza=nodo; pFinal=pCabeza; total ++; } else { pFinal->pSiguiente=nodo; nodo->pSiguiente=NULL; pFinal=nodo; total ++; } } int Cola::VerPrimerElto() { if (EsColaVacia()==1) { printf("La cola esta vacia.\n"); return 0; getche(); } else { cout<<pCabeza->iDato<<endl; return pCabeza->iDato; getche(); } } int Cola::SacarDeCola() { if (EsColaVacia()==1) { printf("La cola esta vacia.\n");

getche(); } else { int resp=pCabeza->iDato; CNodo*Aux; Aux=pCabeza; pCabeza=pCabeza->pSiguiente; delete Aux; total --; return resp; } return 0; } int main() { CNodo nodo; Cola colita; int seleccion=1; while (seleccion != 0) { system ("cls"); printf("Seleccione una opcion: \n\n"); printf(" 1- Ver si esta la cola vacia\n"); printf(" 2- Meter datos en cola\n"); printf(" 3- Ver el primer elemento\n"); printf(" 4- Sacar datos de cola\n"); printf(" 5- Ver el total\n"); printf(" 0- * SALIR *\n"); scanf("%d",&seleccion); system("cls"); switch (seleccion) { case 1: int estado; estado=colita.EsColaVacia(); if (estado==1) { printf("%d",&estado,"Cola vacia\n"); getche(); break; } else { printf("%d", &estado, "Cola cargada\n"); getche(); break; } break; case 2: int metere; int c; c=0; printf("Cuantos elementos vas a meter: "); scanf("%d", &metere); while(c<metere) {

int n; printf("Valor a meter: "); scanf("%d", &n); colita.MeterEnCola(n); c++; } break; case 3: colita.VerPrimerElto(); getche(); break; case 4: printf("Cuantos elementos quieres sacar: int saco; saco=0; scanf("%d", saco); while (saco>0) { int dato=colita.SacarDeCola(); printf("%d", &dato); saco--; } break; case 5: int total; total=colita.DevElto(); printf("Total: ","%d", &total); getche(); break;

");

} system("cls"); } printf("***************************************************\n"); printf("* BYE BYE :) OHHH CIELOS BY MaChEtE *\n"); printf("***************************************************\n"); getche(); }

También podría gustarte