Izpitno vprašanje RAČ2PRA 8400

Iz MaFiRaWiki

Vprašanje

|8400| Algoritem, ki odstrani vsak drugi element iz dvojno povezanega linearnega seznama.

Odgovor

Algoritem je sledeči:

  1.  
  2. public void odstraniDrugega() {
  3. if(prazen()) throw new Exception("Seznam je prazen!");
  4. DVozel prvi = vrniPrviVozel();
  5. DVozel zadnji = vrniZadnjiVozel();
  6. int i = 1,
  7. while(prvi != null) {
  8. if(i%2 == 0) {
  9. DVozel prej = prvi.nazaj();
  10. odstrani(prvi.vrniPodatek();
  11. DVozel za = prvi.naslednji();
  12. DVozel.prej.nastaviNasled(za);
  13. if(za != null) {
  14. za.nastaviPred(prej);
  15. }
  16. }
  17.  
  18. i++;
  19. prvi = prvi.vrniNasled();
  20. }
  21. }

Glej tudi

Linearni_seznam

Osebna orodja