Bonsoir,
j'ai formulé un code ayant comme but d'implémenter une liste par tableau formé de plusieurs méthodes (j'ai introduit des commentaires indiquant chacune de ses méthodes) en
utilisant le langage Java. Mais il y a quelques méthodes (j'ai indiqué lesquelles avec le mot recursive) que je dois les écrire en utilisant la récursivité. Si vous pouvez me guider en prenant comme exemple une méthode.
Merci d'avance!
Code:public class IntListType { private final int DEFAULT_CAPACITY=10; private final int RESIZE_FACTOR=2; private int[]list; private int elements; public IntListType(){ list=new int[DEFAULT_CAPACITY]; elements=0; } //Redimensionnement du tableau public void resize(){ int newLength= list.length*RESIZE_FACTOR; int[]tempList=new int[newLength]; for(int index=0;index<elements;index++){ tempList[index]=list[index]; list=tempList; } } //Determiner la taille du tableau public int size(){ return elements; } //Tester si la liste est vide public boolean isEmpty(){ return (elements==0); } //Récupérer l'élément qui se trouve a la position index public int get (int index){ if(index>elements || index<0){ System.out.println("Index errone"); return 0; } return list[index]; } //vider la liste public void clear(){ for(int index=0;index<elements;index++) list[index]=0; elements=0; } //Ajout d'un élément a la fin de la liste public void add (int i){ if(elements==list.length) resize(); list[elements]=i; elements++; } //Ajout d'un élément a une position donnée dans la liste (RECURSIVE je l'ai déja fait) public void add (int i,int index,int index2){ if(index>elements || index<0){ System.out.println("Index errone"); return;} if(elements==list.length){ resize();} if(index==index2){ list[index]=i; elements++; } else list[index2]=list[index2-1]; add(i,index,index2-1); } //Recherche d'un élément dans la liste (RECURSIVE?) public boolean contains (int i){ int index=0; boolean found=false; while(!found && index<elements){ if(list[index]==i) found=true; index++; } return found; } //Récupérer l'index d'un élément(RECURSIVE?) public int indexOf(int i){ int index=0; boolean found=false; while(!found && index<elements){ if(list[index]==i) found=true; else index++; } if(!found) index=-1; return index; } //Retirer un élément de la liste(RECURSIVE?) public boolean remove1 (int i){ int index=0; boolean found=false; while(!found && index<elements){ if(list[index]==i) list[index]=0; found=true; } index++; if(found) { while(index<elements) { list[index-1]=list[index]; index++; } elements--; } return found; } //Retirer un élément étant donné son index dans la liste public int remove (int index){ (RECURSIVE?) if(index>=elements||index<0){ System.out.println("Index errone"); return 0; } int temp=list[index]; list[index]=0; index++; while(index<elements){ list[index-1]=list[index]; index++; } elements--; return temp; } public int set (int index, int i){ if(index>=elements || index<0){ System.out.println("Index errone"); return 0; } int temp=list[index]; list[index]=i; return temp; } }
-----