Create a generic Node class and make use of it.
[TP_POO.git] / Listes / Liste.java
index 6a62aea93ac02feeaba37c34db1421ae8a06750e..8256bcb89de74d1aa52f5a1ef4f90b446640bc44 100644 (file)
@@ -1,49 +1,17 @@
 
 
-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;
-    }
-
-}
-
-class Liste {
-    private IntNode headNode;
+public class Liste {
+    private Node<Integer> headNode;
     private int list_counter;
 
     Liste() {
-        setheadNode(null);
+        setHeadNode(null);
         setSize(0);
     }
 
     private boolean isEmpty()
     {
-        return headNode == null;
+        return getHeadNode() == null;
     }
 
     private int getSize() {
@@ -54,43 +22,35 @@ class Liste {
         list_counter = size;
     }
 
-    private void setheadNode(IntNode node) {
+    private void setHeadNode(Node<Integer> node) {
         headNode = node;
     }
 
-    private IntNode getheadNode() {
+    private Node<Integer> getHeadNode() {
         return headNode;
     }
 
     public void inserer(int value) {
-        boolean inserted = false;
+        boolean found = false;
         if (isEmpty()) {
-            headNode = new IntNode(value);
+            headNode = new Node<Integer>(value);
             list_counter++;
             return;
-        } else if (value < headNode.getData()) {
-            headNode = new IntNode(value, headNode);
-            list_counter++;
+        } else if (value == headNode.getData()) {
+            found = true;
             return;
         } else {
-            IntNode nodeCursor = headNode;
-            IntNode nodeCursorNext = headNode.getNext();
+            Node<Integer> nodeCursorNext = headNode.getNext();
             while (nodeCursorNext != null) {
-                if (value == nodeCursor.getData() || value == nodeCursorNext.getData()) {
-                    inserted = true;
-                    break;
-                } else if (value > nodeCursor.getData() && value < nodeCursorNext.getData()) {
-                    nodeCursor.setNext(new IntNode(value, nodeCursorNext));
-                    inserted = true;
-                    list_counter++;
+                if (value == nodeCursorNext.getData()) {
+                    found = true;
                     break;
                 } else {
-                    nodeCursor = nodeCursorNext;
                     nodeCursorNext = nodeCursorNext.getNext();
                 }
             }
-            if (!inserted) {
-                nodeCursor.setNext(new IntNode(value));
+            if (!found) {
+                headNode = new Node<Integer>(value, headNode);
                 list_counter++;
             }
         }
@@ -105,8 +65,8 @@ class Liste {
             deleted = true;
             list_counter--;
         } else {
-            IntNode nodeCursor = headNode;
-            IntNode nodeCursorNext = headNode.getNext();
+            Node<Integer> nodeCursor = headNode;
+            Node<Integer> nodeCursorNext = headNode.getNext();
             while (nodeCursorNext != null) {
                 if (value == nodeCursorNext.getData()) {
                     nodeCursor.setNext(nodeCursorNext.getNext());
@@ -123,19 +83,22 @@ class Liste {
     }
 
     public void afficher() {
+        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("Valeur du noeud 0 : " + headNode.getData());
+            System.out.println("element " + i + " : " + headNode.getData());
         } else {
-            IntNode nodeCursor = headNode;
-            int i = 0;
-            while (nodeCursor.getNext() != null) {
-                System.out.println("Valeur du noeud " + i + " : " + nodeCursor.getData());
-                nodeCursor = nodeCursor.getNext();
+            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++;
             }
-            System.out.println("Valeur du noeud " + i++ + " : " + nodeCursor.getData());
         }
     }