Izpitno vprašanje RAČ2PRA 7400

Iz MaFiRaWiki

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

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 dvojno povezanega linearnega seznama v Javi.

Odgovor

Definicija

Linearni seznam je množica elementov, kjer vsak element poleg podatka vsebuje tudi kazalec (povezavo, referenco) ali dva na sosedni-a element-a linearnega seznama. Dvojno povezani linerni seznam pa je tak Linearni seznam, kjer vsak element vsebuje natanko dva kazaleca in ta kaže na naslednji element.

  1.  
  2. public class DLinSez
  3. {
  4. protected DVozel prvi;
  5. protected DVozel zadnji;
  6.  
  7. public DLinSez()
  8. {
  9. prvi = null;
  10. zadnji = null;
  11. }
  12.  
  13. public void vstavi_prvega(DVozel v)
  14. {
  15. v.nastaviNasled(prvi);
  16. v.nastaviPrejs(null);
  17. if(prvi != null)
  18. prvi.nastaviPrejs(v);
  19. else
  20. zadnji = v;
  21. prvi = v;
  22. }
  23.  
  24. public void vstavi_prvega(int x)
  25. {
  26. DVozel v = new DVozel(x);
  27. vstavi_prvega(v);
  28. }
  29.  
  30. public void vstavi_zadnjega(DVozel v)
  31. {
  32. v.nastaviNasled(null);
  33. v.nastaviPrejs(this.zadnji);
  34. if(zadnji != null)
  35. zadnji.nastaviNasled(v);
  36. else
  37. prvi = v;
  38. zadnji = v;
  39. }
  40.  
  41. public void vstavi_zadnjega(int x)
  42. {
  43. DVozel v = new DVozel(x);
  44. vstavi_zadnjega(v);
  45. }
  46.  
  47. public void odstrani_prvega()
  48. {
  49. prvi = prvi.vrniNasled();
  50. if(prvi != null)
  51. prvi.nastaviPrejs(null);
  52. else
  53. zadnji = null;
  54. }
  55.  
  56. public void odstrani_zadnjega()
  57. {
  58. zadnji = zadnji.vrniPrejs();
  59. if(zadnji != null)
  60. zadnji.nastaviNasled(null);
  61. else
  62. prvi = null;
  63. }
  64.  
  65. public int vrednost_prvega()
  66. {
  67.  
  68. return prvi.vrniPodatek();
  69. }
  70.  
  71. public int vrednsot_zadnjega()
  72. {
  73. return zadnji.vrniPodatek();
  74. }
  75.  
  76. public void izpisi()
  77. {
  78. DVozel kje = new DVozel();
  79. kje = prvi;
  80.  
  81. while(kje != null)
  82. {
  83. System.out.print(kje.vrniPodatek() + " ");
  84. kje = kje.vrniNasled();
  85. }
  86.  
  87. System.out.println();
  88. }
  89.  
  90. public void izpisi_obratno()
  91. {
  92. DVozel kje = new DVozel();
  93. kje = zadnji;
  94.  
  95. while(kje != null)
  96. {
  97. System.out.print(kje.vrniPodatek() + " ");
  98. kje = kje.vrniPrejs();
  99. }
  100. System.out.println();
  101. }
  102.  
  103. public boolean prazen()
  104. {
  105. return (prvi == null);
  106. }
  107. }
  108.  
  109. public class DVozel
  110. {
  111. private DVozel naslednji;
  112. private DVozel prejsnji;
  113. private int podatek;
  114.  
  115.  
  116. public DVozel()
  117. {
  118. podatek = 0;
  119. naslednji = null;
  120. prejsnji = null;
  121. }
  122.  
  123. public DVozel(int x)
  124. {
  125. podatek = x;
  126. naslednji = null;
  127. prejsnji = null;
  128. }
  129.  
  130. public void nastaviPodatek(int x)
  131. {
  132. this.podatek = x;
  133. }
  134. public int vrniPodatek()
  135. {
  136. return podatek;
  137. }
  138. public void nastaviNasled(DVozel v)
  139. {
  140. this.naslednji = v;
  141. }
  142. public void nastaviPrejs(DVozel v)
  143. {
  144. this.prejsnji = v;
  145. }
  146. public DVozel vrniNasled()
  147. {
  148. return this.naslednji;
  149. }
  150. public DVozel vrniPrejs()
  151. {
  152. return this.prejsnji;
  153. }
  154. }
Osebna orodja