X-Git-Url: https://git.piment-noir.org/?p=TP_POO.git;a=blobdiff_plain;f=TP2%2FListe.java;h=ceab4993c1f80e4da6edc998b99c0d10ffe1a6dc;hp=b31d0816218f2db6028c5edf8ff4ac14a5392852;hb=22758baf926b8b833ce6a38566eb157e13fbd3fb;hpb=54d3f5b36181762091ed310b362ec21356284e60 diff --git a/TP2/Liste.java b/TP2/Liste.java index b31d081..ceab499 100644 --- a/TP2/Liste.java +++ b/TP2/Liste.java @@ -118,20 +118,45 @@ public class Liste extends Structure { } public void afficher() { - System.out.println("---- liste ----"); + String className = this.getClass().getSimpleName(); + int i = 0; + System.out.println("---- " + className + " ----"); if (isEmpty()) { - System.out.println("Liste vide"); + return; } else if (headNode.getNext() == null) { - System.out.println("element 0 : " + headNode.getData()); + System.out.println("element " + i + " : " + headNode.getData()); } else { + 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++; + } + } + } + + 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; - while (nodeCursor.getNext() != null) { - System.out.println("element " + i + " : " + nodeCursor.getData()); + // Go to the node at the nElements place + while (i < nElements -1 && nodeCursor.getNext() != null && nElements > 1) { nodeCursor = nodeCursor.getNext(); i++; } - System.out.println("element " + i++ + " : " + nodeCursor.getData()); + // Set the nElements + 1 node as the root node + // It might be null + setHeadNode(nodeCursor.getNext()); } }