Entiers, Pile: Print only the values in the stack.
[TP_POO.git] / Entiers / Entiers.java
CommitLineData
bc48a285
JB
1
2class Entiers {
3 private int int_array[];
4 private int array_size;
5 private int current_size;
6
7 private void setSize(int size) {
8 array_size = size;
9 }
10
11 private int getSize() {
12 return array_size;
13 }
14
15 private void setCurrentSize(int index) {
16 current_size = index;
17 }
18
19 private int getCurrentSize() {
20 return current_size;
21 }
22
23 Entiers(int size) {
24 int_array = new int[size];
25 setSize(size);
26 setCurrentSize(0);
27 }
28
29 public boolean inserer(int value) {
61363e13 30 if (isFull()) {
bc48a285
JB
31 System.out.println("Tableau plein");
32 return false;
33 }
61363e13
JB
34 if (isEmpty()) {
35 int_array[0] = value;
36 current_size++;
37 return true;
38 } else {
39 for (int i = 0; i < getCurrentSize(); i++) {
40 if (int_array[i] == value) {
41 return true;
42 } else if (int_array[i] > value) {
43 for (int j = getCurrentSize(); j > i; j--) {
44 int_array[j] = int_array[j - 1];
45 }
46 int_array[i] = value;
47 current_size++;
48 return true;
49 }
50 }
bc48a285 51 }
61363e13
JB
52 /**
53 * The current value to add is > to all elements in the tab.
54 * So add it at the end.
55 */
56 int_array[getCurrentSize()] = value;
bc48a285
JB
57 current_size++;
58 return true;
59 }
60
61 private int binarySearch(int first, int last, int value) {
62 if (last < first)
63 return -1;
64 int middle = (first + last) / 2;
65 if (value == int_array[middle])
66 return middle;
9f6084ea 67 else if (value > int_array[middle])
bc48a285
JB
68 return binarySearch((middle + 1), last, value);
69 return binarySearch(first, (middle -1), value);
70 }
71
72 public boolean supprimer(int value) {
61363e13 73 if (isEmpty()) {
bc48a285
JB
74 System.out.println("Aucune valeur à supprimer");
75 return false;
76 }
77
61363e13
JB
78 for (int i = 0; i < getCurrentSize(); i++) {
79 if (int_array[i] == value) {
80 // Deleting the element in the tab
81 for (int j = i; j < getCurrentSize() - 1; j++) {
82 int_array[j] = int_array[j + 1];
83 }
84 current_size--;
85 return true;
86 }
87 }
88 return true;
bc48a285
JB
89 }
90
61363e13 91 private boolean isFull() {
bc48a285
JB
92 return (getCurrentSize() >= getSize());
93 }
94
61363e13 95 private boolean isEmpty() {
bc48a285
JB
96 return (getCurrentSize() == 0);
97 }
98
99 public void afficher() {
61363e13 100 System.out.println("----");
30632042 101 for (int i = 0; i < getCurrentSize(); i++) {
bc48a285
JB
102 System.out.println("element " + i + " " + int_array[i]);
103 }
104 }
105
106 public static void main(String[] args) {
107 Entiers integer = new Entiers(5);
108
109 integer.inserer(1);
110
111 integer.afficher();
112
113 integer.inserer(12);
114
115 integer.afficher();
116
117 integer.inserer(3);
118
119 integer.afficher();
120
121 integer.inserer(0);
122
123 integer.inserer(1);
124
125 integer.afficher();
126
127 integer.supprimer(12);
128
129 integer.afficher();
130 System.out.println("Current size " + integer.getCurrentSize());
131
132 integer.supprimer(1);
133
134 integer.afficher();
135 System.out.println("Current size " + integer.getCurrentSize());
136
bc48a285
JB
137 }
138}