--- /dev/null
+
+class Entiers {
+ private int int_array[];
+ private int array_size;
+ private int current_size;
+
+ private void setSize(int size) {
+ array_size = size;
+ }
+
+ private int getSize() {
+ return array_size;
+ }
+
+ private void setCurrentSize(int index) {
+ current_size = index;
+ }
+
+ private int getCurrentSize() {
+ return current_size;
+ }
+
+ Entiers(int size) {
+ int_array = new int[size];
+ setSize(size);
+ setCurrentSize(0);
+ }
+
+ public boolean inserer(int value) {
+ if (is_full()) {
+ System.out.println("Tableau plein");
+ return false;
+ }
+ //FIXME: Avoid duplicated values
+ int i;
+ for (i = getCurrentSize() - 1; (i >= 0 && int_array[i] > value); i--) {
+ int_array[i + 1] = int_array[i];
+ }
+ int_array[i + 1] = value;
+ current_size++;
+ return true;
+ }
+
+ private int binarySearch(int first, int last, int value) {
+ if (last < first)
+ return -1;
+ int middle = (first + last) / 2;
+ if (value == int_array[middle])
+ return middle;
+ if (value > int_array[middle])
+ return binarySearch((middle + 1), last, value);
+ return binarySearch(first, (middle -1), value);
+ }
+
+ public boolean supprimer(int value) {
+ if (is_empty()) {
+ System.out.println("Aucune valeur à supprimer");
+ return false;
+ }
+
+ // Find position of element to be deleted
+ int pos = binarySearch(0, getCurrentSize(), value);
+
+ if (pos == -1)
+ {
+ System.out.println("Valeur à supprimer inexistante");
+ return false;
+ }
+
+ // Deleting element
+ for (int i = pos; i < getCurrentSize() - 1; i++) {
+ int_array[i] = int_array[i + 1];
+ }
+
+ current_size--;
+ return true;
+ }
+
+ private boolean is_full() {
+ return (getCurrentSize() >= getSize());
+ }
+
+ private boolean is_empty() {
+ return (getCurrentSize() == 0);
+ }
+
+ public void afficher() {
+ for (int i = 0; i < getSize(); i++) {
+ System.out.println("element " + i + " " + int_array[i]);
+ }
+ }
+
+ public static void main(String[] args) {
+ Entiers integer = new Entiers(5);
+
+ integer.inserer(1);
+
+ integer.afficher();
+
+ integer.inserer(12);
+
+ integer.afficher();
+
+ integer.inserer(3);
+
+ integer.afficher();
+
+ integer.inserer(0);
+
+ integer.inserer(1);
+
+ integer.afficher();
+
+ integer.supprimer(12);
+
+ integer.afficher();
+ System.out.println("Current size " + integer.getCurrentSize());
+
+ integer.supprimer(1);
+
+ integer.afficher();
+ System.out.println("Current size " + integer.getCurrentSize());
+
+
+ }
+}