Create a generic Node class and make use of it.
[TP_POO.git] / Listes / Liste.java
index 6dd1c5fb58abc7194f905d2bda87f75b385b9139..8256bcb89de74d1aa52f5a1ef4f90b446640bc44 100644 (file)
@@ -1,39 +1,7 @@
 
 
-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() {
@@ -43,7 +11,7 @@ class Liste {
 
     private boolean isEmpty()
     {
-        return headNode == null;
+        return getHeadNode() == null;
     }
 
     private int getSize() {
@@ -54,25 +22,25 @@ 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 found = false;
         if (isEmpty()) {
-            headNode = new IntNode(value);
+            headNode = new Node<Integer>(value);
             list_counter++;
             return;
         } else if (value == headNode.getData()) {
             found = true;
             return;
         } else {
-            IntNode nodeCursorNext = headNode.getNext();
+            Node<Integer> nodeCursorNext = headNode.getNext();
             while (nodeCursorNext != null) {
                 if (value == nodeCursorNext.getData()) {
                     found = true;
@@ -82,7 +50,7 @@ class Liste {
                 }
             }
             if (!found) {
-                headNode = new IntNode(value, headNode);
+                headNode = new Node<Integer>(value, headNode);
                 list_counter++;
             }
         }
@@ -97,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());
@@ -115,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());
         }
     }