58 lines
1.0 KiB
Java
58 lines
1.0 KiB
Java
package a6;
|
|
|
|
public final class ListHead {
|
|
|
|
public ListHead next;
|
|
public ListHead prev;
|
|
public Object data;
|
|
|
|
public ListHead() {
|
|
init();
|
|
}
|
|
|
|
public final void del() {
|
|
next.prev = prev;
|
|
prev.next = next;
|
|
init();
|
|
}
|
|
|
|
public final void delInit() {
|
|
del();
|
|
}
|
|
|
|
public final void addTail(ListHead pnew) {
|
|
ListHead tmp_prev = prev;
|
|
prev = pnew;
|
|
pnew.next = this;
|
|
pnew.prev = tmp_prev;
|
|
tmp_prev.next = pnew;
|
|
}
|
|
|
|
public final Object firstEntry() {
|
|
return next.data;
|
|
}
|
|
|
|
public final void replace(ListHead pnew) {
|
|
pnew.next = next;
|
|
pnew.next.prev = pnew;
|
|
pnew.prev = prev;
|
|
pnew.prev.next = pnew;
|
|
pnew.data = data;
|
|
}
|
|
|
|
public final void replaceInit(ListHead pnew) {
|
|
replace(pnew);
|
|
init();
|
|
}
|
|
|
|
public final boolean empty() {
|
|
return next == this;
|
|
}
|
|
|
|
public final void init() {
|
|
next = this;
|
|
prev = this;
|
|
}
|
|
|
|
}
|