exo4: add a generic Node class and make use of it.
authorJérôme Benoit <jerome.benoit@piment-noir.org>
Fri, 4 May 2018 09:44:13 +0000 (11:44 +0200)
committerJérôme Benoit <jerome.benoit@piment-noir.org>
Fri, 4 May 2018 09:44:13 +0000 (11:44 +0200)
Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
.gitignore
exo4/Liste.java
exo4/Main.java
exo4/Node.java [new file with mode: 0644]

index b5705d30ff0342074553c65d7b68a2ed7715e97e..885da23894a515e976793ce20fcb107fd828ec38 100644 (file)
@@ -15,3 +15,5 @@ hs_err_pid*
 # editor trash
 *.swp
 *~
+
+.DS_Store
index 6928b00737e0656548f61f6b49cc791812f80b77..abf2efd58ac91f824e8930f949c8238b633c72db 100644 (file)
@@ -4,40 +4,7 @@
     date = "05/12/2011"
 )
 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 Node<Integer> headNode;
     private int list_counter;
 
     Liste() {
@@ -58,25 +25,25 @@ public class Liste extends Structure {
         list_counter = size;
     }
 
-    public void setHeadNode(IntNode node) {
+    public void setHeadNode(Node<Integer> node) {
         headNode = node;
     }
 
-    public IntNode getHeadNode() {
+    public Node<Integer> getHeadNode() {
         return headNode;
     }
 
     public boolean inserer(int value) {
         boolean found = false;
         if (isEmpty()) {
-            headNode = new IntNode(value);
+            headNode = new Node<Integer>(value);
             list_counter++;
             return true;
         } else if (value == headNode.getData()) {
             found = true;
             return true;
         } else {
-            IntNode nodeCursorNext = headNode.getNext();
+            Node<Integer> nodeCursorNext = headNode.getNext();
             while (nodeCursorNext != null) {
                 if (value == nodeCursorNext.getData()) {
                     found = true;
@@ -86,7 +53,7 @@ public class Liste extends Structure {
                 }
             }
             if (!found) {
-                headNode = new IntNode(value, headNode);
+                headNode = new Node<Integer>(value, headNode);
                 list_counter++;
             }
             // Insertion in a linked list can't fail
@@ -103,8 +70,8 @@ public class Liste extends Structure {
             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());
@@ -129,7 +96,7 @@ public class Liste extends Structure {
         } else if (headNode.getNext() == null) {
             System.out.println("element " + i + " : " + headNode.getData());
         } else {
-            IntNode nodeCursorNext = headNode.getNext();
+            Node<Integer> nodeCursorNext = headNode.getNext();
             System.out.println("element " + i + " : " + headNode.getData());
             i++;
             while (nodeCursorNext != null) {
@@ -148,7 +115,7 @@ public class Liste extends Structure {
             headNode = null;
         } else {
             // We have at least 2 nodes in the linked list
-            IntNode nodeCursor = headNode;
+            Node<Integer> nodeCursor = headNode;
             int i = 0;
             // Go to the node at the nElements place
             while (i < nElements - 1 && nodeCursor.getNext() != null && nElements > 1) {
index a83fab4e457f8454e0a91041b05bfb142c24b42e..479313d5f4e15df27b09b8ddb477d46e545f4e3a 100644 (file)
@@ -17,6 +17,7 @@ class Main {
         packageClasses.add(Entiers.class);
         packageClasses.add(Forme.class);
         packageClasses.add(Image.class);
+        packageClasses.add(Node.class);
         packageClasses.add(Liste.class);
         packageClasses.add(Piletransformations.class);
         packageClasses.add(Point.class);
diff --git a/exo4/Node.java b/exo4/Node.java
new file mode 100644 (file)
index 0000000..c2dc310
--- /dev/null
@@ -0,0 +1,35 @@
+@ClassPreamble (
+    author = "Jérôme Benoit",
+    date = "09/11/2012"
+)
+public class Node<T> {
+    private T data;
+    private Node<T> next;
+
+    Node(T value) {
+        setData(value);
+        setNext(null);
+    }
+
+    Node(T value, Node<T> nextNode) {
+        setData(value);
+        setNext(nextNode);
+    }
+
+    public T getData() {
+        return data;
+    }
+
+    public void setData(T value) {
+        data = value;
+    }
+
+    public Node<T> getNext() {
+        return next;
+    }
+
+    public void setNext(Node<T> nextNode) {
+        next = nextNode;
+    }
+
+}