Ir al contenido principal

Programación en c++: Cola: Encolar, desencolar






#include<iostream.h>
#include<conio.h>
struct nodo{
            char nombre[20];
            char sexo;
            struct nodo*sgte;
            };
struct cola{
            struct nodo*adelante;
            struct nodo*atras;
            };
void inicializar(struct cola&);
void encola(struct cola&, struct nodo);
struct nodo(desencola(struct cola&));
void vercola(struct cola);
void main()
{int n,i;
struct nodo cte;
struct cola q;
struct cola qh;
struct cola qm;
inicializar(q);
inicializar(qh);
inicializar(qm);
cout<<"Numero de clientes:";
cin>>n;
for(i=0;i<n;i++)
{cout<<"Nombre   :"; cin>>cte.nombre;
 cout<<"Sexo[M/F]:"; cin>>cte.sexo;
 encola(q,cte);
}
cout<<"***Cola Original***"<<endl;
vercola(q);
while(q.adelante!=NULL)
{cte=desencola(q);
 if(cte.sexo=='M'|| cte.sexo=='m')
 encola(qh,cte);
 else
 encola(qm,cte);
}
cout<<"***Cola de Hombres***"<<endl;
vercola(qh);
cout<<"***Cola de Mujeres***"<<endl;
vercola(qm);
getch();
}
void inicializar(struct cola&q)
{ q.adelante=NULL;
  q.atras=NULL;
}
void encola(struct cola&q, struct nodo cte)
{struct nodo *p;
 p=new(struct nodo);
 *p=cte;
  p->sgte=NULL;
     if(q.adelante==NULL)
     q.adelante=p;
     else (q.atras)->sgte=p;
     q.atras=p;
}
struct nodo desencola(struct cola&q)
{ struct nodo *p;
   p=q.adelante;
     struct nodo n=*p;
     q.adelante=(q.adelante)->sgte;
     delete(p);
     return n;
    }
void vercola(struct cola q)
{
 struct nodo*p;
       p=q.adelante;
       while(p!=NULL)
       {cout<<p->nombre<<endl;
        p=p->sgte;
       }
       cout<<endl;
 }

cola en c++

Comentarios

Entradas más populares de este blog

Lenguaje de Programacion en Java: Ecuación de primer grado

public class Main {     public static void main(String[] args) {         float x,a,e;                   Scanner teclado = new Scanner(System.in);         System.out.println("Coeficiente de X:");         x=teclado.nextInt();         System.out.println("Término independiente:");         a=teclado.nextInt();         if(a==0)           System.out.println("No es una ecuación de primer grado");           else         {              e=-a/x;              System.out.println("La raíz es=" +e);         }                                     } ...

Programacion: Arbol binario - Programacion en c++

1.- Hacer un programa que permita buscar un elemento, el elemento mayor, el elemento menor y el menor de los mayores de un árbol binario. #include <iostream.h> #include <conio.h> struct nodo     {      int valor;      struct nodo* izq;      struct nodo* der;     }; typedef struct nodo *ABB; void inserta(ABB& ,int); void preorden(ABB); void postorden(ABB); void enorden(ABB); void verarbol(ABB,int); int buscar(ABB,int); int buscarmayor(ABB); int buscarmenor(ABB); void podar(ABB&,int); void main() { ABB arbol=NULL; ABB subarbol=NULL; int n,x,opc,a;   do     {      cout<<"menu principal"<<endl;      cout<<"1.ingresar elementos"<<endl;      cout<<"2.pre orden"<<endl;      cout<<"3.mostrar hojas"<...

Programacion: Arreglos con estructuras - ordenamientos

1.- Se pide realizar un ordenamiento de artículos, para ello se debe ingresar n artículos y ordenarlos por su monto de inversión. struct articulo {char codigo[10];  char producto[20];  float preciocompra;  float monto;  int cantidad;  }  #include<iostream.h> #include<string.h> #include<conio.h> #define MAX 50 struct articulo {char codigo[10];  char producto[20];  float preciocompra;  float monto;  int cantidad;  };  void leer(int, struct articulo[]);  void montodeinversion(int, struct articulo[]);  void ordenmonto(int, struct articulo[]);  void listado(int, struct articulo[]);  void main()  {int n;   struct articulo Art[MAX];   cout<<"Cantidad de articulos que desea poner:";   cin>>n;   leer(n,Art);   montodeinversion(n,Art);   ordenmonto(n,Art);   cout<<"productos ordenados por su cantidad de mont...