ayuda con pila de datos

Iniciado por Halcon_De_Chicureo, 15 Septiembre 2017, 01:08 AM

0 Miembros y 1 Visitante están viendo este tema.

Halcon_De_Chicureo

buenas gente, soy estudiante de informatica y me mandaron varios ejercicios para hacer para estudiar para un examen. El problema es que hay un ejercicio de pila de datos que no supe como hacer y quisiera ver si podrian darme una mano con esto:

Crear una Pila de Datos con números enteros en el rango 1 a 20 (puede ingresar los valores por consola o generarlos al azar, debe :

-Traspasar los números pares de la PD a una PD de números pares.
-Traspasar los números impares de la PD a una PD de números impares.

NO olvides que los datos de una PD se manipulan solamente con los métdos push() y pop()

el ejercicio lo tengo que hacer en netbeans.

según el profesor es bastante facil, pero a mi en lo personal me complica esta materia :/

AlbertoBSD

#1
Acabo de hacer este ejemplo  :rolleyes:



typedef struct {
int max;
int length;
int *elementos;
}stack;

int pop(stack *s){
int r = 0;
if(length != 0) {
r =elementos[length-1];
length--;
}
return r;
}

void pop(stack *s,int item){
int r = 0;
elementos = realloc(elementos,(length+1)*sizeof(int));
elementos[length] = item;
length++;
}


stack *crearPila() {
stack *temp;
temp = malloc(sizeof(stack));
temp->length = 0;
temp->elementos = malloc(sizeof(int));
return temp;
}

int main() {
srand(time(NULL) + 3487324 /*Cambiar u omitir este valor*/);
stack *p1,*pimpar,*ppar;
p1 = crearPila();
pimpar = crearPila();
ppar = crearPila();
int i =0,temp;
while(i < 100) {
push(p1,rand()%20);
i++;
}
i =0;
while(i < 100) {
temp = pop(p1);
if(temp % 2 == 0){ //Par
push(ppar,temp);
}
else{
push(pimpar,temp);
}
i++;
}

}


Omiti muchas cosas pero puede ilustrar lo que necesitas, por cierto que no lo he compilado ni le he agregado las librerias y no se si tenga errores.

Saludos!
Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW