public class Liste extends Structure { private class IntNode { private int data; private IntNode next; IntNode(int value) { setData(value); setNext(null); } IntNode(int value, IntNode nextNode) { setData(value); setNext(nextNode); } public int getData() { return data; } public void setData(int value) { data = value; } public IntNode getNext() { return next; } public void setNext(IntNode nextNode) { next = nextNode; } } private IntNode headNode; private int list_counter; Liste() { setHeadNode(null); setSize(0); } private boolean isEmpty() { return getHeadNode() == null; } public int getSize() { return list_counter; } public void setSize(int size) { list_counter = size; } public void setHeadNode(IntNode node) { headNode = node; } public IntNode getHeadNode() { return headNode; } public boolean inserer(int value) { boolean found = false; if (isEmpty()) { headNode = new IntNode(value); list_counter++; return true; } else if (value == headNode.getData()) { found = true; return true; } else { IntNode nodeCursorNext = headNode.getNext(); while (nodeCursorNext != null) { if (value == nodeCursorNext.getData()) { found = true; break; } else { nodeCursorNext = nodeCursorNext.getNext(); } } if (!found) { headNode = new IntNode(value, headNode); list_counter++; } // Insertion in a linked list can't fail return true; } } public boolean supprimer(int value) { boolean deleted = false; if (isEmpty()) { return deleted; } else if (value == headNode.getData()) { headNode = headNode.getNext(); deleted = true; list_counter--; } else { IntNode nodeCursor = headNode; IntNode nodeCursorNext = headNode.getNext(); while (nodeCursorNext != null) { if (value == nodeCursorNext.getData()) { nodeCursor.setNext(nodeCursorNext.getNext()); deleted = true; list_counter--; break; } else { nodeCursor = nodeCursorNext; nodeCursorNext = nodeCursorNext.getNext(); } } } return deleted; } 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 " + 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++; } } } }