Evo i rješenje 7. zadatka...
[code:1]void parnepar(STACK *S1, STACK *S2) {
int temp, promjena=1;
while (promjena) {
promjena=0;
while(EMPTY(*S1)==0 && TOP(*S1)%2==0) {
PUSH(TOP(*S1), S2);
POP(S1);
}
if (EMPTY(*S1)==0 && TOP(*S1)%2==1) {
temp=TOP(*S1);
POP(S1);
promjena=1;
}
while(EMPTY(*S2)==0 && TOP(*S2)%2==0) {
PUSH(TOP(*S2), S1);
POP(S2);
}
if (promjena==1) PUSH(temp, S2);
}
}[/code:1]
Eto, to je to...
Kako radi? Prebacujemo elemente iz S1 u S2 sve dok ne naletimo na neparan element. Njega pamtimo, i vraćamo sve elemente iz S2 u S1 osim neparnog (što nam neće biti važno u prvom koraku). Neparni potom ubacujemo na vrh S2.
I to radimo sve dok se ne dogodi da više nema neparnih elemenata u S1 (u tu svrhu služi varijabla promjena)...
Eto, to je to...
Kako radi? Prebacujemo elemente iz S1 u S2 sve dok ne naletimo na neparan element. Njega pamtimo, i vraćamo sve elemente iz S2 u S1 osim neparnog (što nam neće biti važno u prvom koraku). Neparni potom ubacujemo na vrh S2.
I to radimo sve dok se ne dogodi da više nema neparnih elemenata u S1 (u tu svrhu služi varijabla promjena)...
_________________
"It's hard work. You show up every morning. You work hard every day, you give your best effort. There is no pressure if you prepare yourself." - Kobe Bryant