Search
 
 
  Engleski
 
 
 
Open in this window (click to change)
Forum@DeGiorgi: Početna
Forum za podršku nastavi na PMF-MO
Login Registracija FAQ Smajlići Članstvo Pretražnik Forum@DeGiorgi: Početna

Rješenje 7. zadatka
WWW:

Moja sarma
 
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Kolegiji 2. godine -> Strukture podataka i algoritmi
Prethodna tema :: Sljedeća tema  
Autor/ica Poruka
bojan
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 04. 03. 2006. (19:48:44)
Postovi: (44)16
Spol: muško
Sarma = la pohva - posuda
24 = 25 - 1
Lokacija: Zagreb

PostPostano: 15:49 sub, 25. 11. 2006    Naslov: Rješenje 7. zadatka Citirajte i odgovorite

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)...
Evo i rješenje 7. zadatka...

Kod:
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);
           }
   
     }


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
[Vrh]
Korisnički profil Pošaljite privatnu poruku Pošaljite e-mail Posjetite Web stranice MSNM
Prethodni postovi:   
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Kolegiji 2. godine -> Strukture podataka i algoritmi Vremenska zona: GMT + 01:00.
Stranica 1 / 1.

 
Forum(o)Bir:  
Ne možete otvarati nove teme.
Ne možete odgovarati na postove.
Ne možete uređivati Vaše postove.
Ne možete izbrisati Vaše postove.
Ne možete glasovati u anketama.
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2002 phpBB Group
Theme created by Vjacheslav Trushkin
HR (Cro) by Ančica Sečan