Advertisement
Guest User

Untitled

a guest
Mar 27th, 2015
239
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.94 KB | None | 0 0
  1. import java.util.Iterator;
  2. import java.lang.Iterable;
  3.  
  4. public class Kolejka<T> implements Iterable<T> {
  5.  
  6. public class Element {
  7. private T wartosc;
  8. private Element next;
  9. private Element previous;
  10.  
  11. public Element(T x) {
  12. wartosc = x;
  13. next = null;
  14. previous = null;
  15. }
  16.  
  17. public void setNext(Element e) {
  18. next = e;
  19. }
  20.  
  21. public void setPrevious(Element e) {
  22. previous = e;
  23. }
  24.  
  25. public Element getNext() {
  26. return next;
  27. }
  28.  
  29. public Element getPrevious() {
  30. return previous;
  31. }
  32.  
  33. public T getWartosc() {
  34. return wartosc;
  35. }
  36. } // koniec Element
  37.  
  38. public Iterator<T> iterator() {
  39. // tworzymy nowy obiekt wewnêtrznej klasy Iter
  40. // i zwracamy jego referencjê
  41.  
  42. return new Iter();
  43. }
  44.  
  45. public class Iter implements Iterator<T> {
  46.  
  47. Element current = first;
  48.  
  49. public T next() {
  50.  
  51. Element temp = current;
  52. current = current.getNext();
  53. return temp.getWartosc();
  54. }
  55.  
  56. public boolean hasNext() {
  57.  
  58. // if (current == last)
  59. // return false;
  60. // else
  61. // return true;
  62. return current != null;
  63. }
  64.  
  65. }
  66.  
  67. Element first, last;
  68.  
  69. public Kolejka() {
  70. first = last = null;
  71. }
  72.  
  73. // dodaje element na koniec kolejki
  74. public void enqueue(T x) {
  75. Element temp = new Element(x);
  76.  
  77. if (first == null) {
  78. first = last = temp;
  79. } else {
  80. temp.setPrevious(last);
  81. last.setNext(temp);
  82. last = temp;
  83. }
  84.  
  85. }
  86.  
  87. // sciaga z kolejki element na 1 miejscu
  88. public T dequeue() {
  89. if (first != null) {
  90. Element temp = first;
  91. if (first.getNext() == null) {
  92. first = last = null;
  93. return temp.getWartosc();
  94. }
  95.  
  96. first = first.getNext();
  97. return temp.getWartosc();
  98. } else
  99. return null;
  100.  
  101. }
  102.  
  103. /* wyswietla zawartosc kolejki */
  104. public void pokaz() {
  105. if (first != null) {
  106. Element temp = first;
  107. while (temp != null) {
  108. System.out.print(temp.getWartosc() + " ");
  109. temp = temp.getNext();
  110. }
  111. System.out.println();
  112. } else {
  113. System.out.println("kolejka jest pusta");
  114. }
  115. }
  116.  
  117. public static void main(String[] args) {
  118. Kolejka<Integer> kolejka = new Kolejka<Integer>();
  119.  
  120. kolejka.enqueue(1);
  121. kolejka.enqueue(2);
  122. kolejka.enqueue(3);
  123. kolejka.enqueue(0);
  124. // kolejka.enqueue(1);
  125.  
  126. kolejka.pokaz();
  127.  
  128. // kolejka.dequeue();
  129. // kolejka.pokaz();
  130.  
  131. Iterator<Integer> it = kolejka.iterator();
  132.  
  133. while (it.hasNext()) {
  134. // pobieramy je i wyœwietlamy je na ekranie
  135. System.out.println(it.next());
  136.  
  137. }
  138.  
  139. Kolejka<Integer> kolejka2 = new Kolejka<Integer>();
  140. // kolejka2.enqueue(1);
  141. // kolejka2.enqueue(0);
  142. // kolejka2.enqueue(6);
  143. // kolejka2.enqueue(4);
  144. // kolejka2.enqueue(7);
  145. // kolejka2.pokaz();
  146.  
  147. for (Iterator<Integer> iterator2 = kolejka2.new Iter(); iterator2
  148. .hasNext();) {
  149. // pobieramy je i wyœwietlamy je na ekranie
  150. System.out.println(iterator2.next());
  151. }
  152.  
  153. for (int wartosc : kolejka) {
  154. System.out.print(wartosc+",");
  155. }
  156.  
  157. }// koniec main
  158.  
  159. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement