+++ /dev/null
-
-@ClassPreamble (
- author = "Jérôme Benoit",
- date = "05/03/2009"
-)
-class Entiers extends Structure {
- private int int_array[];
- private int array_size;
- private int current_size;
-
- public void setSize(int size) {
- array_size = size;
- }
-
- public int getSize() {
- return array_size;
- }
-
- public void setCurrentSize(int index) {
- current_size = index;
- }
-
- public int getCurrentSize() {
- return current_size;
- }
-
- Entiers(int size) {
- int_array = new int[size];
- setSize(size);
- setCurrentSize(0);
- }
-
- public boolean inserer(int value) {
- if (isFull()) {
- System.out.println("Tableau plein");
- return false;
- }
- if (isEmpty()) {
- int_array[0] = value;
- current_size++;
- return true;
- } else {
- for (int i = 0; i < getCurrentSize(); i++) {
- if (int_array[i] == value) {
- return true;
- } else if (int_array[i] > value) {
- for (int j = getCurrentSize(); j > i; j--) {
- int_array[j] = int_array[j - 1];
- }
- int_array[i] = value;
- current_size++;
- return true;
- }
- }
- }
- /**
- * The current value to add is > to all elements in the tab.
- * So add it at the end.
- */
- int_array[getCurrentSize()] = value;
- current_size++;
- return true;
- }
-
- private int binarySearch(int first, int last, int value) {
- if (last < first)
- //FIXME: should not return an integer
- return -1;
- int middle = (first + last) / 2;
- if (value == int_array[middle])
- return middle;
- else if (value > int_array[middle])
- return binarySearch((middle + 1), last, value);
- return binarySearch(first, (middle - 1), value);
- }
-
- public boolean supprimer(int value) {
- if (isEmpty()) {
- System.out.println("Aucune valeur à supprimer");
- return false;
- }
- for (int i = 0; i < getCurrentSize(); i++) {
- if (int_array[i] == value) {
- // Deleting the element in the tab
- for (int j = i; j < getCurrentSize() - 1; j++) {
- int_array[j] = int_array[j + 1];
- }
- current_size--;
- return true;
- }
- }
- return true;
- }
-
- private boolean isFull() {
- return (getCurrentSize() >= getSize());
- }
-
- private boolean isEmpty() {
- return (getCurrentSize() == 0);
- }
-
- public void afficher() {
- String className = this.getClass().getSimpleName();
- System.out.println("---- " + className + " ----");
- for (int i = 0; i < getCurrentSize(); i++) {
- System.out.println("element " + i + " : " + int_array[i]);
- }
- }
-
- public void compacter(int nElements) {
- if (current_size - nElements > 0) {
- // Remove the last nElements
- current_size -= nElements;
- } else {
- current_size = 0;
- }
- }
-
-}