Izpitno vprašanje RAČ2PRA 10300

Iz MaFiRaWiki

Predmet Računalništvo 2 (FMF PRA)

Vprašanje

Sestavi algoritem, ki iz sklada zgradi iskalno dvojiško drevo.

Odgovor

  1. public static DvDrevo iskalnoDrevo(Sklad s) {
  2. DvDrevo d = new DvDrevo();
  3. // iz sklada beremo podatke in jih vstavljamo v iskalno drevo
  4. while(!s.prazen()) {
  5. d = vstavi(d, s.vrh());
  6. s.odstrani();
  7. }
  8. return d;
  9. }
  10.  
  11. // podatek vstavimo v iskalno drevo
  12. public static DvDrevo vstavi(DvDrevo d, int p) {
  13. if(d.prazno()) return DvDrevo.sestavi(new DvDrevo(), p, new DvDrevo());
  14. if(p <= d.koren()) {
  15. DvDrevo novi = vstavi(d.leviSin(), p);
  16. return DvDrevo.sestavi(novi, d.koren(), d.desniSin());
  17. }
  18. else {
  19. DvDrevo novi = vstavi(d.desniSin(), p);
  20. return DvDrevo.sestavi(d.leviSin(), d.koren(), novi);
  21. }
  22. }
Osebna orodja