-
+@ClassPreamble (
+ author = "Jérôme Benoit",
+ date = "05/12/2011"
+)
public class Liste extends Structure {
private class IntNode {
public void afficher() {
String className = this.getClass().getSimpleName();
+ int i = 0;
System.out.println("---- " + className + " ----");
if (isEmpty()) {
return;
} else if (headNode.getNext() == null) {
- System.out.println("element 0 : " + headNode.getData());
+ System.out.println("element " + i + " : " + headNode.getData());
} else {
- IntNode nodeCursor = headNode;
- int i = 0;
- while (nodeCursor.getNext() != null) {
- System.out.println("element " + i + " : " + nodeCursor.getData());
- nodeCursor = nodeCursor.getNext();
+ IntNode nodeCursorNext = headNode.getNext();
+ System.out.println("element " + i + " : " + headNode.getData());
+ i++;
+ while (nodeCursorNext != null) {
+ System.out.println("element " + i + " : " + nodeCursorNext.getData());
+ nodeCursorNext = nodeCursorNext.getNext();
i++;
}
- System.out.println("element " + i++ + " : " + nodeCursor.getData());
}
}
public void compacter(int nElements) {
-
+ // Remove the first nElements
+ if (isEmpty() || nElements == 0) {
+ return;
+ } else if (headNode != null && headNode.getNext() == null) {
+ headNode = null;
+ } else {
+ // We have at least 2 nodes in the linked list
+ IntNode nodeCursor = headNode;
+ int i = 0;
+ // Go to the node at the nElements place
+ while (i < nElements - 1 && nodeCursor.getNext() != null && nElements > 1) {
+ nodeCursor = nodeCursor.getNext();
+ i++;
+ }
+ // Set the nElements + 1 node as the root node
+ // It might be null
+ setHeadNode(nodeCursor.getNext());
+ }
}
}