X-Git-Url: https://git.piment-noir.org/?p=TP_POO.git;a=blobdiff_plain;f=Listes%2FListe.java;h=8256bcb89de74d1aa52f5a1ef4f90b446640bc44;hp=d290a9cc4154716b753a2287b3991a4561cdf198;hb=f00e7dee9b1470315e6365e3d17bf8bbc9aab89e;hpb=357ec4fe0356d5eb126ea539202fb16df568fb35 diff --git a/Listes/Liste.java b/Listes/Liste.java index d290a9c..8256bcb 100644 --- a/Listes/Liste.java +++ b/Listes/Liste.java @@ -1,23 +1,134 @@ -class Liste { - private int data; + +public class Liste { + private Node 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 node) { + headNode = node; + } + + private Node getHeadNode() { + return headNode; + } + public void inserer(int value) { + boolean found = false; + if (isEmpty()) { + headNode = new Node(value); + list_counter++; + return; + } else if (value == headNode.getData()) { + found = true; + return; + } else { + Node nodeCursorNext = headNode.getNext(); + while (nodeCursorNext != null) { + if (value == nodeCursorNext.getData()) { + found = true; + break; + } else { + nodeCursorNext = nodeCursorNext.getNext(); + } + } + if (!found) { + headNode = new Node(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 nodeCursor = headNode; + Node 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 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()); } }