Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Iterator;
- import java.lang.Iterable;
- public class Kolejka<T> implements Iterable<T> {
- public class Element {
- private T wartosc;
- private Element next;
- private Element previous;
- public Element(T x) {
- wartosc = x;
- next = null;
- previous = null;
- }
- public void setNext(Element e) {
- next = e;
- }
- public void setPrevious(Element e) {
- previous = e;
- }
- public Element getNext() {
- return next;
- }
- public Element getPrevious() {
- return previous;
- }
- public T getWartosc() {
- return wartosc;
- }
- } // koniec Element
- public Iterator<T> iterator() {
- // tworzymy nowy obiekt wewnêtrznej klasy Iter
- // i zwracamy jego referencjê
- return new Iter();
- }
- public class Iter implements Iterator<T> {
- Element current = first;
- public T next() {
- Element temp = current;
- current = current.getNext();
- return temp.getWartosc();
- }
- public boolean hasNext() {
- // if (current == last)
- // return false;
- // else
- // return true;
- return current != null;
- }
- }
- Element first, last;
- public Kolejka() {
- first = last = null;
- }
- // dodaje element na koniec kolejki
- public void enqueue(T x) {
- Element temp = new Element(x);
- if (first == null) {
- first = last = temp;
- } else {
- temp.setPrevious(last);
- last.setNext(temp);
- last = temp;
- }
- }
- // sciaga z kolejki element na 1 miejscu
- public T dequeue() {
- if (first != null) {
- Element temp = first;
- if (first.getNext() == null) {
- first = last = null;
- return temp.getWartosc();
- }
- first = first.getNext();
- return temp.getWartosc();
- } else
- return null;
- }
- /* wyswietla zawartosc kolejki */
- public void pokaz() {
- if (first != null) {
- Element temp = first;
- while (temp != null) {
- System.out.print(temp.getWartosc() + " ");
- temp = temp.getNext();
- }
- System.out.println();
- } else {
- System.out.println("kolejka jest pusta");
- }
- }
- public static void main(String[] args) {
- Kolejka<Integer> kolejka = new Kolejka<Integer>();
- kolejka.enqueue(1);
- kolejka.enqueue(2);
- kolejka.enqueue(3);
- kolejka.enqueue(0);
- // kolejka.enqueue(1);
- kolejka.pokaz();
- // kolejka.dequeue();
- // kolejka.pokaz();
- Iterator<Integer> it = kolejka.iterator();
- while (it.hasNext()) {
- // pobieramy je i wyœwietlamy je na ekranie
- System.out.println(it.next());
- }
- Kolejka<Integer> kolejka2 = new Kolejka<Integer>();
- // kolejka2.enqueue(1);
- // kolejka2.enqueue(0);
- // kolejka2.enqueue(6);
- // kolejka2.enqueue(4);
- // kolejka2.enqueue(7);
- // kolejka2.pokaz();
- for (Iterator<Integer> iterator2 = kolejka2.new Iter(); iterator2
- .hasNext();) {
- // pobieramy je i wyœwietlamy je na ekranie
- System.out.println(iterator2.next());
- }
- for (int wartosc : kolejka) {
- System.out.print(wartosc+",");
- }
- }// koniec main
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement