Pogovor:Izpitno vprašanje DIRI2005 5100

Iz MaFiRaWiki

(Razlika med različicami)
Različica od 08:25, 29 april 2008
MatijaLokar (Pogovor | prispevki)

← Prejšnja različica
Različica od 09:36, 9 maj 2008
MatijaLokar (Pogovor | prispevki)

Naslednja različica →
Vrstica 5: Vrstica 5:
--[[Uporabnik:MatijaLokar|Matija Lokar]] 10:25, 29 april 2008 (CEST) --[[Uporabnik:MatijaLokar|Matija Lokar]] 10:25, 29 april 2008 (CEST)
 +
 +Hm, algoritem ne bo čisto Ok. Nekaj je napak v implementaciji, napačno idejo pa sem prejšnjič spregledal!
 +V ideji je narobe to, da ne jemljemo pri združevanju manjšega (končno - kdaj je zabojnik manjši od drugega?), ampak moramo le izmenično jemati!
 +Torej, če je prvotni sklad a, x, g, h bi mpotrm mortal biti x, a, h, g.
 +
 +Implementacija: zagotovo se ob "zlivanju" sklada ne spraznita sočasno!
 +
 +Poleg tega je potrebno uporabljati osnovne operacije nad skladom. Torej sklad > 0 zagotovo ne bo ok!
 +Še enkrat - na voljo imate OSNOVNE operacije.
 +
 +Namig: en sklad v drugega preložimo takole
 +<java>
 + novS = pripravi(); // pripravimo nov sklad
 + while (!s.prazen()) {
 + elt = s.vrh();
 + s.odstrani();
 + novS.vstavi(elt);
 + }
 +</java>
 +
 +--[[Uporabnik:MatijaLokar|Matija Lokar]] 11:36, 9 maj 2008 (CEST)

Različica od 09:36, 9 maj 2008

Manjka algoritem!

Ideja je prava, sedaj pa jo je potrebno še zložiti v algoritem, kjer uporabljate osnovne operacije nad skladom. Seveda pa je mogoče zadevo rešiti tudi samo z enim pomožnim skladom.

--Matija Lokar 10:25, 29 april 2008 (CEST)

Hm, algoritem ne bo čisto Ok. Nekaj je napak v implementaciji, napačno idejo pa sem prejšnjič spregledal! V ideji je narobe to, da ne jemljemo pri združevanju manjšega (končno - kdaj je zabojnik manjši od drugega?), ampak moramo le izmenično jemati! Torej, če je prvotni sklad a, x, g, h bi mpotrm mortal biti x, a, h, g.

Implementacija: zagotovo se ob "zlivanju" sklada ne spraznita sočasno!

Poleg tega je potrebno uporabljati osnovne operacije nad skladom. Torej sklad > 0 zagotovo ne bo ok! Še enkrat - na voljo imate OSNOVNE operacije.

Namig: en sklad v drugega preložimo takole

  1.  
  2. novS = pripravi(); // pripravimo nov sklad
  3. while (!s.prazen()) {
  4. elt = s.vrh();
  5. s.odstrani();
  6. novS.vstavi(elt);
  7. }

--Matija Lokar 11:36, 9 maj 2008 (CEST)

Osebna orodja