MoparScape/clients/client317/src/main/java/rs/NodeList.java

98 lines
2.2 KiB
Java
Executable File

package rs;// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://www.kpdus.com/jad.html
// Decompiler options: packimports(3)
public final class NodeList {
public NodeList() {
head = new Node();
head.prev = head;
head.next = head;
}
public void insertHead(Node node) {
if (node.next != null)
node.unlink();
node.next = head.next;
node.prev = head;
node.next.prev = node;
node.prev.next = node;
}
public void insertTail(Node node) {
if (node.next != null)
node.unlink();
node.next = head;
node.prev = head.prev;
node.next.prev = node;
node.prev.next = node;
}
public Node popHead() {
Node node = head.prev;
if (node == head) {
return null;
} else {
node.unlink();
return node;
}
}
public Node reverseGetFirst() {
Node node = head.prev;
if (node == head) {
current = null;
return null;
} else {
current = node.prev;
return node;
}
}
public Node getFirst() {
Node node = head.next;
if (node == head) {
current = null;
return null;
} else {
current = node.next;
return node;
}
}
public Node reverseGetNext() {
Node node = current;
if (node == head) {
current = null;
return null;
} else {
current = node.prev;
return node;
}
}
public Node getNext() {
Node node = current;
if (node == head) {
current = null;
return null;
}
current = node.next;
return node;
}
public void removeAll() {
if (head.prev == head)
return;
do {
Node node = head.prev;
if (node == head)
return;
node.unlink();
} while (true);
}
private final Node head;
private Node current;
}