Реализации алгоритмов/Очередь
Очередь — структура данных с дисциплиной доступа к элементам «первый пришёл — первый вышел» (FIFO).
Добавление элемента (принято обозначать словом enqueue — поставить в очередь) возможно лишь в конец очереди, выборка — только из начала очереди (что принято называть словом dequeue — убрать из очереди), при этом выбранный элемент из очереди удаляется.
public class Node {
public Node next;
public int value;
}
public class Queue {
Node first,last;
public void push(Object obj) {
if (obj == null || !(obj instanceof Node))
return;
else {
Node node = (Node)obj;
if (first == null) {
last = node;
first = last;
}
else {
last.next = node;
last = last.next;
}
}
}
public Node pop() {
if (first == null) {
return null;
}
else {
if (first == last) {
Node buf = first;
first = null;
last = null;
return buf;
}
else {
Node buf = first;
first = first.next;
return buf;
}
}
}
}