Izpitno vprašanje RAČ2PRA 4600

Iz MaFiRaWiki

(Razlika med različicami)

Različica od 10:09, 9 april 2007

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

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:

Predstavitev sklada s tabelo!

Odgovor:

- Elemente hranimo v tabeli (cela števila)

- Problem: omejena velikost

- Uporabnik sam poskrbi zato, da ne prekorači zmogljivosti sklada


  1. public class SkladTabela{
  2. private int[] tabela;
  3. private int kam; // kazalec na mesto, kjer bomo vstavili nov element
  4. private final static int MAX_V = 20; // privzeta velikost sklada
  5.  
  6. // kostruktorja:
  7. public SkladTabela(){ //sklad privzete velikosti
  8. tabela = new int[MAX_V]; //naredimo prazno tabelo s prostorom za MAX_V elementov
  9. kam = 0;
  10. }
  11. public SkladTabela(int velikost){
  12. tabela = new int[velikost];
  13. kam = 0;
  14. }
  15.  
  16. // metode:
  17. public void vstavi(int pod){ // vstavimo podatek v sklad
  18. tabela[kam] = podatek;
  19. kam = kam + 1; //premanemo se naprej na naslednji element
  20. }
  21. public void odstrani(){ // odstranimo podatek iz sklada
  22. // ce je sklad prazen, ne naredimo nič
  23. if (!prazen())
  24. kam = kam - 1; //indeks premaknemo za eno mesto nazaj - tabela namreč ne pozna brisanja
  25. }
  26. public boolean prazen(){ // ali je sklad prazen
  27. return (kam == 0);
  28. }
  29. public int vrh(){ // vrnemo vrhnji element sklada
  30. if (!prazen()){
  31. return tabela[kam - 1]; // kam kaže na prvo PROSTO mesto
  32. }
  33. //sicer vrnemo napako; // v primeru praznega sklada
  34. }
  35. public boolean poln(){ // je sklad poln?
  36. return (kam == tabela.length);
  37. }
  38. public void izpis(){ // izpisemo sklad
  39. for(int i = kam - 1; i >= 0; i--)
  40. System.out.print(tabela[i] + " ");
  41. }}}
Osebna orodja