X-Git-Url: https://git.piment-noir.org/?p=TP_POO.git;a=blobdiff_plain;f=TP2%2FListe.java;h=ceab4993c1f80e4da6edc998b99c0d10ffe1a6dc;hp=4ead214c512edb513a900572095685bb34baa334;hb=22758baf926b8b833ce6a38566eb157e13fbd3fb;hpb=979297754a1c307ecbd003a745c4586f04f0c81a diff --git a/TP2/Liste.java b/TP2/Liste.java index 4ead214..ceab499 100644 --- a/TP2/Liste.java +++ b/TP2/Liste.java @@ -119,25 +119,45 @@ 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 != 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()); + } } }