lunes, 4 de marzo de 2019

Eliminar Dato en Cola

//Eliminar elementos de una cola
#include<iostream>
#include<stdlib.h>
#include <conio.h>

using namespace std;

struct Nodo{
int dato;
Nodo *siguiente;
};

void insertarCola (Nodo *&, Nodo*&, int);
bool cola_vacia(Nodo *);
void eliminarCola(Nodo *&,Nodo *&,int &);
int main(){
Nodo *frente= NULL;
Nodo *fin=NULL;

int dato;

cout<<"Inserte un numero"<<endl;
cin>>dato;
insertarCola(frente,fin,dato);


cout<<"Inserte un numero"<<endl;
cin>>dato;
insertarCola(frente,fin,dato);

cout<<"Inserte un numero"<<endl;
cin>>dato;
insertarCola(frente,fin,dato);

while(frente != NULL){
eliminarCola(frente,fin,dato);

if(frente !=NULL){
cout<<dato<<" , ";

}else{
cout<<dato<<".";
}

}


getch ();
return 0;
}
void insertarCola(Nodo *&frente,Nodo *&fin, int n){
Nodo *nuevo_nodo = new Nodo();
nuevo_nodo->dato=n;
nuevo_nodo->siguiente=NULL;

if(cola_vacia(frente)){
frente=nuevo_nodo;
}else{
fin=nuevo_nodo->siguiente;
}
fin=nuevo_nodo;
cout<<"\n El numero ingresado "<<n<<" Se agrego correctamente"<<endl;
}
// bool para saber si la cola está vacía
bool cola_vacia(Nodo *frente){
return (frente==NULL)? true:false;
}

//funcion para eliminar cola
void eliminarCola(Nodo *&frente, Nodo *&fin, int &n){
n=frente->dato;
Nodo *aux = frente;

if(frente==fin){
frente=NULL;
fin==NULL;
}else{
frente=frente->siguiente;
}
delete aux;
}

No hay comentarios:

Publicar un comentario