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