TTAjava

Les trois classes se succède:

abstract class TableauTrieAbstrait
{
TableauTrieAbstrait()
{
int capacite=10;
int increment=3;
table=new Object[capacite];
}

TableauTrieAbstrait(int capacite, int increment)
{
this.capacite=capacite;
this.increment=increment;
table=new Object[capacite];
}
private int capacite;
private int increment;
private Object[] table;
private int taille=0; //pour le nombre d'Object contenus dans table

abstract boolean plusGrand(Object obj1,Object obj2);
// retourne true si obj1 est plus grand que obj2
//et false sinon

void inserer(Object element)
{
int i;

if (taille==capacite) //on agrandit le tableau
{
capacite+=increment;
Object[] grandTableau=new Object[capacite];
for (i=0;i<taille;i++)grandTableau[i]=table[i];
table=grandTableau;
}
i=taille-1;
while ((i>=0) && (plusGrand(table[i],element)))
{
table[i+1]= table[i];
i--;
}
table[i+1]=element;
taille++;
}

void supprimer(Object element)
{
int i=0;

while((i<taille)&&(!(element.equals(table[i])))) i++;
if (i<taille)
{
while (i<taille-1)
{
table[i]=table[i+1];
i++;
}
taille--;
if (taille==capacite-2*increment) //on diminue le tableau
{
capacite-=increment;
Object[] petitTableau=new Object[capacite];
for (i=0;i<taille;i++)petitTableau[i]=table[i];
table=petitTableau;
}
}
}

public String toString()
{
String chaine="";
for (int i=0;i<taille;i++) chaine+=table[i]+" ";
chaine+="\n";
return chaine;
}
}
================================================
class TableauTrieEntiers extends TableauTrieAbstrait
{
TableauTrieEntiers(int capacite, int increment)
{
super(capacite,increment);
}

public boolean plusGrand(Object i1, Object i2)
{
return ((Integer)i1).intValue()>((Integer)i2).intValue() ;
}
}
==========================================================
import java.io.*;

class EssaiTriAbstrait
{
public static void main (String[] argv)
{
TableauTrieEntiers tableau =
new TableauTrieEntiers(argv.length,1);

for(int i=0;i<argv.length;i++)
try
{
tableau.inserer(new Integer(argv[i]));
}
catch (NumberFormatException exc)
{
System.out.println(argv[i]+" n'est pas entier");
}
System.out.println(tableau);
System.out.print("donnez un entier a supprimer : ");
BufferedReader entree =
new BufferedReader(new InputStreamReader(System.in));
String ligne=null;
try
{
ligne=entree.readLine();
}
catch(IOException exc){}
try
{
tableau.supprimer(new Integer(ligne));
}
catch (NumberFormatException exc)
{
System.out.println(ligne+" n'est pas entier");
}
System.out.println(tableau);
}
}



Comments