Code cleanup.
[TP_POO.git] / Listes / Liste.java
CommitLineData
357ec4fe 1
f1af4106 2
aac9e71b 3public class Liste {
f00e7dee 4 private Node<Integer> headNode;
357ec4fe 5 private int list_counter;
357ec4fe
JB
6
7 Liste() {
130dab91 8 setHeadNode(null);
f1af4106
JB
9 setSize(0);
10 }
357ec4fe 11
f1af4106
JB
12 private boolean isEmpty()
13 {
d7dd93e3 14 return getHeadNode() == null;
357ec4fe
JB
15 }
16
17 private int getSize() {
18 return list_counter;
19 }
20
f1af4106
JB
21 private void setSize(int size) {
22 list_counter = size;
23 }
24
f00e7dee 25 private void setHeadNode(Node<Integer> node) {
f1af4106
JB
26 headNode = node;
27 }
357ec4fe 28
f00e7dee 29 private Node<Integer> getHeadNode() {
f1af4106
JB
30 return headNode;
31 }
32
33 public void inserer(int value) {
684b6099 34 boolean found = false;
f1af4106 35 if (isEmpty()) {
f00e7dee 36 headNode = new Node<Integer>(value);
f1af4106
JB
37 list_counter++;
38 return;
684b6099
JB
39 } else if (value == headNode.getData()) {
40 found = true;
f1af4106
JB
41 return;
42 } else {
f00e7dee 43 Node<Integer> nodeCursorNext = headNode.getNext();
f1af4106 44 while (nodeCursorNext != null) {
684b6099
JB
45 if (value == nodeCursorNext.getData()) {
46 found = true;
f1af4106
JB
47 break;
48 } else {
f1af4106
JB
49 nodeCursorNext = nodeCursorNext.getNext();
50 }
51 }
684b6099 52 if (!found) {
f00e7dee 53 headNode = new Node<Integer>(value, headNode);
f1af4106
JB
54 list_counter++;
55 }
56 }
357ec4fe
JB
57 }
58
59 public boolean supprimer(int value) {
f1af4106
JB
60 boolean deleted = false;
61 if (isEmpty()) {
62 return deleted;
63 } else if (value == headNode.getData()) {
64 headNode = headNode.getNext();
65 deleted = true;
66 list_counter--;
67 } else {
f00e7dee
JB
68 Node<Integer> nodeCursor = headNode;
69 Node<Integer> nodeCursorNext = headNode.getNext();
f1af4106
JB
70 while (nodeCursorNext != null) {
71 if (value == nodeCursorNext.getData()) {
72 nodeCursor.setNext(nodeCursorNext.getNext());
73 deleted = true;
74 list_counter--;
75 break;
76 } else {
77 nodeCursor = nodeCursorNext;
78 nodeCursorNext = nodeCursorNext.getNext();
79 }
80 }
81 }
82 return deleted;
83 }
84
85 public void afficher() {
5731ae5f
JB
86 String className = this.getClass().getSimpleName();
87 int i = 0;
88 System.out.println("---- " + className + " ----");
f1af4106 89 if (isEmpty()) {
5731ae5f 90 return;
f1af4106 91 } else if (headNode.getNext() == null) {
5731ae5f 92 System.out.println("element " + i + " : " + headNode.getData());
f1af4106 93 } else {
f00e7dee 94 Node<Integer> nodeCursorNext = headNode.getNext();
5731ae5f
JB
95 System.out.println("element " + i + " : " + headNode.getData());
96 i++;
97 while (nodeCursorNext != null) {
98 System.out.println("element " + i + " : " + nodeCursorNext.getData());
99 nodeCursorNext = nodeCursorNext.getNext();
f1af4106
JB
100 i++;
101 }
f1af4106
JB
102 }
103 }
104
105 public static void main(String[] args) {
106 Liste LinkedList = new Liste();
107
108 LinkedList.inserer(2);
109 LinkedList.inserer(1);
110 LinkedList.inserer(4);
111 LinkedList.afficher();
112 System.out.println("Taille de la liste : " + LinkedList.getSize());
113
114 LinkedList.inserer(2);
115 LinkedList.inserer(10);
116 LinkedList.inserer(0);
117 LinkedList.afficher();
118 System.out.println("Taille de la liste : " + LinkedList.getSize());
357ec4fe 119
f1af4106
JB
120 LinkedList.supprimer(4);
121 LinkedList.afficher();
122 System.out.println("Taille de la liste : " + LinkedList.getSize());
123 LinkedList.supprimer(0);
124 LinkedList.afficher();
125 System.out.println("Taille de la liste : " + LinkedList.getSize());
126 LinkedList.supprimer(0);
127 LinkedList.afficher();
128 System.out.println("Taille de la liste : " + LinkedList.getSize());
129 LinkedList.supprimer(10);
130 LinkedList.afficher();
131 System.out.println("Taille de la liste : " + LinkedList.getSize());
357ec4fe
JB
132 }
133
134}