, если я поддерживаю ссылку the least added item
, но не поддерживает ссылку most recently added
, то у меня будет постоянное время "dequeue"
и линейное время "enqueue"
. поэтому это моя программа, которая реализует очередь в java-связанном списке. Я хочу спросить, поддерживает ли эта программа как наименее добавленный элемент, так и последний добавленный элемент? так что это все постоянное время, когда я "dequeue"
или "enqueue"
? Спасибо!о линейном времени и постоянном времени реализации очереди по связанному с java списку
add: Я согласен с тем, что сказал первый ответ, поэтому я попробовал режим отладки, и он показывает, что старая версия не обновилась после последнего изменения, так что она все еще работает ... но из теории ссылок я узнал от uni , так же, как он сказал, он не должен работать .. Любой человек может сказать мне, почему он не обновляется автоматически? (моя ява версия 1,8)
package tst;
public class linkedlsqueue {
private class Node {
String item;
Node next;
}
Node first, last;
public boolean isEmpty() {
return first == null;
}
public void enqueue(String item) {
Node oldlast = last;
last = new Node();
last.item = item;
if (isEmpty()) {
first = last;
}
else {
oldlast.next = last;
}
}
public String dequeue() {
String item = first.item;
first = first.next;
if (isEmpty()) {
last = null;
}
return item;
}
}
просто точка: в списке, хвост все за голову – Daniel
@ Daniel не согласен. После быстрого поиска: http://www.studytonight.com/data-structures/queue-data-structure – javaLover
hmm ... Когда я впервые узнал, что haskell, я делал рекурсии в списках вроде этого: что-то делать с головой и вызовите рекурсию к хвосту (который был остальной частью списка). Я тоже называл последний элемент хвостом, но потом я подумал, что это неправильно ... может быть, я должен просто принять оба :) – Daniel