-class Liste {
- private int data;
+
+public class Liste {
+ private Node<Integer> headNode;
private int list_counter;
- private Liste next;
Liste() {
+ setHeadNode(null);
+ setSize(0);
+ }
+ private boolean isEmpty()
+ {
+ return getHeadNode() == null;
}
private int getSize() {
return list_counter;
}
- public boolean inserer(int value) {
+ private void setSize(int size) {
+ list_counter = size;
+ }
+
+ private void setHeadNode(Node<Integer> node) {
+ headNode = node;
+ }
+
+ private Node<Integer> getHeadNode() {
+ return headNode;
+ }
+ public void inserer(int value) {
+ boolean found = false;
+ if (isEmpty()) {
+ headNode = new Node<Integer>(value);
+ list_counter++;
+ return;
+ } else if (value == headNode.getData()) {
+ found = true;
+ return;
+ } else {
+ Node<Integer> nodeCursorNext = headNode.getNext();
+ while (nodeCursorNext != null) {
+ if (value == nodeCursorNext.getData()) {
+ found = true;
+ break;
+ } else {
+ nodeCursorNext = nodeCursorNext.getNext();
+ }
+ }
+ if (!found) {
+ headNode = new Node<Integer>(value, headNode);
+ list_counter++;
+ }
+ }
}
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 {
+ Node<Integer> nodeCursor = headNode;
+ Node<Integer> 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 {
+ Node<Integer> 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 static void main(String[] args) {
+ Liste LinkedList = new Liste();
+
+ LinkedList.inserer(2);
+ LinkedList.inserer(1);
+ LinkedList.inserer(4);
+ LinkedList.afficher();
+ System.out.println("Taille de la liste : " + LinkedList.getSize());
+
+ LinkedList.inserer(2);
+ LinkedList.inserer(10);
+ LinkedList.inserer(0);
+ LinkedList.afficher();
+ System.out.println("Taille de la liste : " + LinkedList.getSize());
+ LinkedList.supprimer(4);
+ LinkedList.afficher();
+ System.out.println("Taille de la liste : " + LinkedList.getSize());
+ LinkedList.supprimer(0);
+ LinkedList.afficher();
+ System.out.println("Taille de la liste : " + LinkedList.getSize());
+ LinkedList.supprimer(0);
+ LinkedList.afficher();
+ System.out.println("Taille de la liste : " + LinkedList.getSize());
+ LinkedList.supprimer(10);
+ LinkedList.afficher();
+ System.out.println("Taille de la liste : " + LinkedList.getSize());
}
}