Izpitno vprašanje DIRI2005 7900

Iz MaFiRaWiki

Vprašanje

S pomočjo osnovnih operacij nad vrsto iz vrste odstrani n-ti element (če obstaja).

Odgovor

Predpostavimo, da ima vrsta vsaj n elementov.

Iz dane vrste izbrišemo n-ti element tako, da v pomožno vrsto shranjujemo elemente prvotne vrste. Ko pridemo do n-tega elementa, ga izpustimo, ostale pa ponovno prepisujemo. Iskani rezultat je shranjen v pomožni vrsti. Na koncu pomožno vrsto prepišemo nazaj v vrsto v.

  1. public static void odstrani_Nti(Vrsta v, int n)
  2. {
  3. // Iz vrste v, v kateri je vsaj n podatkov odstranimo n-ti podatek.
  4. Vrsta pom = new Vrsta(); // pomožna vrsta
  5. int i = 1;
  6. while(!v.prazna()){
  7. if(i == n){
  8. v.odstrani();
  9. }
  10. pom.vstavi(v.zacetek()); // V pomožno vrsto prestavljamo vse elemente razen n-tega.
  11. v.odstrani();
  12. i++;
  13. }
  14. while(!pom.prazna()) { // Iz pomožne vrste preložimo nazaj v prvotno vrsto.
  15. v.vstavi(pom.zacetek());
  16. pom.odstrani();
  17. }
  18. return v;
  19. }
Osebna orodja