Include everything in the same class.
[TP_POO.git] / Listes / Liste.java
CommitLineData
357ec4fe 1
f1af4106 2
aac9e71b 3public 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 {
47 return headNode == 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}