我目前正在使用ListNodes定义我自己的类Deque,名为myDeque
。我面临的问题涉及到remove()
方法。你如何修改Deque指向后面的节点并删除曾经是“后退”的内容?谢谢编写deque类的实现
private ListNode<E> front; // Reference to first ListNode in the Deque
private ListNode<E> back; // Reference to last ListNode in the Deque
private int numElems; // Current number of ListNodes in the Deque
public MyDeque() {
front = null;
back = null;
numElems = 0;
}
public void addLast(E e) {
if (numElems == 0){
front = new ListNode<E>(e,null);
back = front;
} else {
back.next = new ListNode<E>(e,null);
back = back.next;
}
numElems += 1;
}
public boolean add(E e) {
if (numElems == 0){
front = new ListNode<E>(e,null);
back = front;
} else {
ListNode<E> prevData = back;
back.next = new ListNode<E>(e,null);
back = back.next;
}
numElems += 1;
return true;
}
public boolean remove(Object o) {
if (numElems == 0){
throw new NoSuchElementException();
}
return false;
}
public E removeLast() {
if (numElems == 0){
throw new NoSuchElementException();
}
else{
numElems = numElems - 1;
}
return null;
}
的Java已经有一个['Deque'(http://docs.oracle.com/javase/7/docs/api/java/util/Deque.html)(和很少的实现,像['ArrayDeque'](http://docs.oracle.com/javase/7/docs/api/java/util/ArrayDeque.html))。为什么你不能使用其中之一? –
这是一个项目,我们使用的代码必须自己实现,以更好地理解listnode数据结构 – user3424216