Izpitno vprašanje RAČ2PRA 7900

Iz MaFiRaWiki

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

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

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

Odgovor

Naš program je sestavljen iz:

- testne metode, v kateri bomo podali elemente vrste in mesto, na katerem stoji element, ki ga želimo izbrisati

- metode, ki bo element na podanem mestu (indeksu) iz vrste odstranila

Sprehodimo se čez vrsto, tako da pogledamo vsak element posebej. Začnemo z elementom na mestu, ki ima indeks 1. Vsak element, ki ne ustreza željenemu, "preložimo" v pomožno vrsto in ga hkrati odstranimo iz vrste. Ko naletimo na ustrezno mesto, kakršno smo podali v testno metodo, element na njem zbrišemo. Če je indeks, ki smo ga na začetku podali, večji od zadnjega indeksa v vrsti, potem nam bo program javil, da v vrsti ne najde željenega elementa. V tem primeru bo vrsta ostala nespremenjena. Na koncu še vse elemente iz pomožne vrste preložimo nazaj v prvotno vrsto, da bo vrstni red elementov ostal tak kot je bil na začetku.

V konkretnem, spodnjem primeru:

- se naša prvotna vrsta imenuje "v"

- pomožna vrsta pa je seveda "pomozna"

  1.  
  2. public class Vrsta_7900{
  3. //metoda, ki bo odstranila nti element:
  4. public static Vrsta odstrani_nti(Vrsta v, int n){
  5. //pomožna vrsta:
  6. Vrsta pomozna = new Vrsta();
  7. int i = 1;
  8. //"sprehodimo" se čez vrsto. Če naletimo na nti element, ga odstranimo.
  9. //ostale elemente vstavimo v pomožno vrsto
  10. while(!v.prazna()){
  11. if(i == n){
  12. v.odstrani();
  13. i++;
  14. }
  15. else {
  16. pomozna.vstavi(v.zacetek());
  17. v.odstrani();
  18. i++;
  19. }
  20. }
  21. if(n >= i) {
  22. System.out.println("V vrsti ni željenega elementa.");
  23. System.out.println("Vrsta ostane nespremenjena.");
  24. }
  25. while(!pomozna.prazna()){
  26. v.vstavi(pomozna.zacetek());
  27. pomozna.odstrani();
  28. }
  29. return v;
  30. }
  31.  
  32. //testna metoda:
  33. public static void main(String[]args) throws Exception {
  34. int n = 4;
  35. Vrsta v = new Vrsta();
  36. Vrsta pomozna = new Vrsta();
  37. v.vstavi(2);
  38. v.vstavi(5);
  39. v.vstavi(9);
  40. v.vstavi(3);
  41. System.out.println("Podana je vrsta: " + v);
  42. System.out.println("Nova vrsta: " + odstrani_nti(v,n));
  43. }
  44. }
  45.  
  46. /*v ukazni vrstici:
  47. > java Vrsta_7900
  48. Podana je vrsta: - 2 - 5 - 9 - 3
  49. Nova vrsta: - 2 - 5 - 9
  50. */
Osebna orodja