Cool C/C++

Programacion en C/C++

Home Foros
Bienvenido, Invitado
Por favor Identificarse o Registrarse.    Contraseña olvidada?

Pila arreglar
(1 viendo) (1) Invitado
AbajoPágina: 1
TEMA: Pila arreglar
#58
Pila arreglar Creado el día: 12/05/2011 00:25 Karma: 0
Ayuda por favor

////////Pilas

#include <iostream.h>
#include <conio.h>
void pone(int,int);
void quita(int);
int tope=0,pila1[30],pila2[30],max=8,i,cod,h=-1,a,b,c=0;
main()
{
do
{
clrscr();
gotoxy(35,2);cout<<"\nMENU";
cout<<"\n1-Para ingresar datos.\n2-Para extraer dator.\n3-Para vizualizar.\n4-Para salir del programa.\nDigite su opcion:";
cin>>cod;
switch(cod)
{
case 1:
pone(tope,max);
if(tope<max)
{
tope++;
h++;
}
getch();
break;
case 2:
quita(tope);
break;
case 3:
cout<<"\nCodigo\tTiempo";
for(i=0;i<tope;i++)
{
if(pila1[i]!=0)
{
cout<<"\n"<<pila1[i];
cout<<"\t"<<pila2[i];
}
}
getch();
break;
}
}
while(cod!=4);
return 0;
}
void pone(int tope,int max)
{
for(i=h;i<tope;i++)
{
if(tope==max)
{
cout<<"\nPila llena";
}
else
{
cout<<"\nintroduzca los datos:";
cout<<"\nintroduzca el codigo del corredor: ";
cin>>pila1[tope];
cout<<"\nintroduzca el tiempo: ";
cin>>pila2[tope];
}
}
}
void quita(int tope)
{
for(i=0;i<tope;i++)
{
a=pila1[i];
c=i+1;
for(i=c;i<tope;i++)
{
if(pila1[i]==a)
{
pila1[i]=0;
}
}
}
}

Cargar arreglo(vector)

12 30 tope
14 36
12 25
9 28
14 37
12 32
14 38
18 23



El vector debe imprimir después que le quita a elemento a la pila así:
Nota:Se imprime los numero que no se repitan y si se repite debe imprimir el ultimo que entro a la pila.

12 30
14 36
9 28
18 23
miguelgrifo
Navegador Iniciado
Mensajes: 4
graphgraph
Usuario Offline Presiona aquí para ver el perfil de este usuario
Última edición: 12/05/2011 00:26 por miguelgrifo.
El administrador ha deshabilitado la escritura pública.
 
#62
Re: Pila arreglar Creado el día: 12/05/2011 14:22 Karma: 2
Puedes colocar el siguiente código justo antes del final de la función quita (ojo con el manejo de arreglos):

int j;
 
// Imprime desde el tope
for (i = tope - 1; i >= 0; i--)
{
if (pila1[i] != 0)
{
// Busca el item en los elementos posteriores
for (j = i + 1; j < tope; j++)
if (pila1[i] == pila1[j])
break;
 
// Si el elemento no ha sido imprimido
if(j == tope)
{
cout << "\n" << pila1[i];
cout << "\t" << pila2[i];
}
}
}
adrianvaca
Administrador
Mensajes: 110
graph
Usuario Offline Presiona aquí para ver el perfil de este usuario
El administrador ha deshabilitado la escritura pública.
El conocimiento es una forma de empezar a ser libre
 
ArribaPágina: 1
obtén los últimos mensajes directamente en tu escritorio