Commit | Line | Data |
---|---|---|
357ec4fe | 1 | |
f1af4106 | 2 | |
aac9e71b | 3 | public class Liste { |
f1af4106 | 4 | |
aac9e71b JB |
5 | private class IntNode { |
6 | private int data; | |
7 | private IntNode next; | |
f1af4106 | 8 | |
aac9e71b JB |
9 | IntNode(int value) { |
10 | setData(value); | |
11 | setNext(null); | |
12 | } | |
f1af4106 | 13 | |
aac9e71b JB |
14 | IntNode(int value, IntNode nextNode) { |
15 | setData(value); | |
16 | setNext(nextNode); | |
17 | } | |
f1af4106 | 18 | |
aac9e71b JB |
19 | private int getData() { |
20 | return data; | |
21 | } | |
f1af4106 | 22 | |
aac9e71b JB |
23 | private void setData(int value) { |
24 | data = value; | |
25 | } | |
f1af4106 | 26 | |
aac9e71b JB |
27 | private IntNode getNext() { |
28 | return next; | |
29 | } | |
f1af4106 | 30 | |
aac9e71b JB |
31 | private void setNext(IntNode nextNode) { |
32 | next = nextNode; | |
33 | } | |
34 | ||
35 | } | |
f1af4106 | 36 | |
f1af4106 | 37 | private IntNode headNode; |
357ec4fe | 38 | private int list_counter; |
357ec4fe JB |
39 | |
40 | Liste() { | |
130dab91 | 41 | setHeadNode(null); |
f1af4106 JB |
42 | setSize(0); |
43 | } | |
357ec4fe | 44 | |
f1af4106 JB |
45 | private boolean isEmpty() |
46 | { | |
d7dd93e3 | 47 | return getHeadNode() == null; |
357ec4fe JB |
48 | } |
49 | ||
50 | private int getSize() { | |
51 | return list_counter; | |
52 | } | |
53 | ||
f1af4106 JB |
54 | private void setSize(int size) { |
55 | list_counter = size; | |
56 | } | |
57 | ||
130dab91 | 58 | private void setHeadNode(IntNode node) { |
f1af4106 JB |
59 | headNode = node; |
60 | } | |
357ec4fe | 61 | |
130dab91 | 62 | private IntNode getHeadNode() { |
f1af4106 JB |
63 | return headNode; |
64 | } | |
65 | ||
66 | public void inserer(int value) { | |
684b6099 | 67 | boolean found = false; |
f1af4106 JB |
68 | if (isEmpty()) { |
69 | headNode = new IntNode(value); | |
70 | list_counter++; | |
71 | return; | |
684b6099 JB |
72 | } else if (value == headNode.getData()) { |
73 | found = true; | |
f1af4106 JB |
74 | return; |
75 | } else { | |
f1af4106 JB |
76 | IntNode nodeCursorNext = headNode.getNext(); |
77 | while (nodeCursorNext != null) { | |
684b6099 JB |
78 | if (value == nodeCursorNext.getData()) { |
79 | found = true; | |
f1af4106 JB |
80 | break; |
81 | } else { | |
f1af4106 JB |
82 | nodeCursorNext = nodeCursorNext.getNext(); |
83 | } | |
84 | } | |
684b6099 JB |
85 | if (!found) { |
86 | headNode = new IntNode(value, headNode); | |
f1af4106 JB |
87 | list_counter++; |
88 | } | |
89 | } | |
357ec4fe JB |
90 | } |
91 | ||
92 | public boolean supprimer(int value) { | |
f1af4106 JB |
93 | boolean deleted = false; |
94 | if (isEmpty()) { | |
95 | return deleted; | |
96 | } else if (value == headNode.getData()) { | |
97 | headNode = headNode.getNext(); | |
98 | deleted = true; | |
99 | list_counter--; | |
100 | } else { | |
101 | IntNode nodeCursor = headNode; | |
102 | IntNode nodeCursorNext = headNode.getNext(); | |
103 | while (nodeCursorNext != null) { | |
104 | if (value == nodeCursorNext.getData()) { | |
105 | nodeCursor.setNext(nodeCursorNext.getNext()); | |
106 | deleted = true; | |
107 | list_counter--; | |
108 | break; | |
109 | } else { | |
110 | nodeCursor = nodeCursorNext; | |
111 | nodeCursorNext = nodeCursorNext.getNext(); | |
112 | } | |
113 | } | |
114 | } | |
115 | return deleted; | |
116 | } | |
117 | ||
118 | public void afficher() { | |
119 | if (isEmpty()) { | |
120 | System.out.println("Liste vide"); | |
121 | } else if (headNode.getNext() == null) { | |
122 | System.out.println("Valeur du noeud 0 : " + headNode.getData()); | |
123 | } else { | |
124 | IntNode nodeCursor = headNode; | |
125 | int i = 0; | |
126 | while (nodeCursor.getNext() != null) { | |
127 | System.out.println("Valeur du noeud " + i + " : " + nodeCursor.getData()); | |
128 | nodeCursor = nodeCursor.getNext(); | |
129 | i++; | |
130 | } | |
131 | System.out.println("Valeur du noeud " + i++ + " : " + nodeCursor.getData()); | |
132 | } | |
133 | } | |
134 | ||
135 | public static void main(String[] args) { | |
136 | Liste LinkedList = new Liste(); | |
137 | ||
138 | LinkedList.inserer(2); | |
139 | LinkedList.inserer(1); | |
140 | LinkedList.inserer(4); | |
141 | LinkedList.afficher(); | |
142 | System.out.println("Taille de la liste : " + LinkedList.getSize()); | |
143 | ||
144 | LinkedList.inserer(2); | |
145 | LinkedList.inserer(10); | |
146 | LinkedList.inserer(0); | |
147 | LinkedList.afficher(); | |
148 | System.out.println("Taille de la liste : " + LinkedList.getSize()); | |
357ec4fe | 149 | |
f1af4106 JB |
150 | LinkedList.supprimer(4); |
151 | LinkedList.afficher(); | |
152 | System.out.println("Taille de la liste : " + LinkedList.getSize()); | |
153 | LinkedList.supprimer(0); | |
154 | LinkedList.afficher(); | |
155 | System.out.println("Taille de la liste : " + LinkedList.getSize()); | |
156 | LinkedList.supprimer(0); | |
157 | LinkedList.afficher(); | |
158 | System.out.println("Taille de la liste : " + LinkedList.getSize()); | |
159 | LinkedList.supprimer(10); | |
160 | LinkedList.afficher(); | |
161 | System.out.println("Taille de la liste : " + LinkedList.getSize()); | |
357ec4fe JB |
162 | } |
163 | ||
164 | } |