X-Git-Url: https://git.piment-noir.org/?p=TP_POO.git;a=blobdiff_plain;f=TP2%2FListe.java;h=201d8750af17c7f0110e8bc852811ed446fea0c7;hp=4ead214c512edb513a900572095685bb34baa334;hb=5731ae5f40887e5a299eeca6d9047c06cd17ab41;hpb=979297754a1c307ecbd003a745c4586f04f0c81a diff --git a/TP2/Liste.java b/TP2/Liste.java index 4ead214..201d875 100644 --- a/TP2/Liste.java +++ b/TP2/Liste.java @@ -119,25 +119,44 @@ public class Liste extends Structure { 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()) { + return; + } else if (nElements == 0) { + return; + } else if (headNode.getNext() == null) { + headNode = null; + } else { + // We have at least 2 nodes in the linked list + IntNode nodeCursor = headNode.getNext(); + int i = 0; + // Go to the node at the nElements + 1 place + while (i < nElements - 1 && nodeCursor.getNext() != null) { + nodeCursor = nodeCursor.getNext(); + i++; + } + // Set the nElements + 1 node as the root node + setHeadNode(nodeCursor); + } } }