Izpitno vprašanje RAČ2PRA 8300

Iz MaFiRaWiki

GFDL Avtor tega članka je študent/ka PeterBedrac.

Pripravil/a ga je pri predmetu Računalništvo 2 (FMF PRA).


Kljub temu ste vsi vabljeni k urejanju in popravkom, saj je bistvo wikija ravno v sodelovalnem delu.

Vprašanje

Imamo dva sklada, v katerih so elementi urejeni naraščajoče. Sestavi algoritem, ki s pomočjo osnovnih operacij nad skladom sestavi nov sklad, kjer so elementi (iz prvih dveh skladov) prav tako urejeni naraščajoče.


Odgovor

Ideja: Dokler imamo podatke iz obeh skladov, primerjamo vrhnja elementa, Prepišemo manjšega v nov sklad in ga odstranimo.Ko en sklad prazen, prepišemo v nov sklad še nepraznega. Ker so podatki v novem skladu urejeni obratno, sklad še preložimo. ALGORITEM:

  1.  
  2. s1, s2, novS
  3.  
  4. while(!s1.prazen() && !s2.prazen()){
  5. int e1 = s1.vrh;
  6. int e2 = s2.vrh;
  7.  
  8. if(e1 == e2){
  9. novS.vstavi(e1);
  10. novS.vstavi(e2);
  11. s1.odstrani();
  12. s2.odstrani();
  13. }
  14. else if(e1 < e2){
  15. novS.vstavi(e1);
  16. s1.odstrani();
  17. }
  18. else{
  19. novS.vstavi(e2);
  20. s2.odstrani();
  21. }
  22. preloži novS v npr s1;
  23. vrni s1;
  24. }
Osebna orodja