a6/ListHead.java
aozhiwei ea394ad9a9 1
2019-12-16 21:15:04 +08:00

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;
}
}