salve ragazzi.....devo creare questo programma:Un “dizionario” è un array di stringhe ordinato lessicograficamente in senso crescente. Scrivere un
metodo che prenda in input una matrice quadrata S di stringhe ed un dizionario, e restituisca un
nuovo dizionario aggiornato con tutte le stringhe in S.
Si supponga che non esistano stringhe ripetute. Non è possibile utilizzare metodi di ordinamento
di seguito posto il codice
codice:
class Dizionario
{
static String[] Metodo(String[][] A, String[] dizionario)
{
String []DizionarioAggiornato=new String[Math.pow(A.length, 2) + dizionario.length ];// la somma di una matrice quadrata + un array è il quadrato della matrice + gli elementi dell'array
indice = Dizionarioaggiornato.length;
for (int i= 0; i<DizionarioAggiornato.length; i++)
DizionarioAggiornato[i] = Dizionario[i];
for (int j= 0 ;j<A.length;j++){
for (int k=0;k<A.length;k++)
ordina(DizionarioAggiornato,indice, a[i][j]);
}
return DizionarioAggiornato;
}
static void ordina(String[] B, indice, String s)
{
int locazioni=indice -1; //partendo dall'ultimo elemento
while (locazioni >=0 && B[locazioni]>s){
A[locazioni + 1] = A[locazioni]; // sposto avanti A[locazioni] in locazioni + 1
locazioni = locazioni - 1; // vado all'elemento precedente
}
A[locazioni + 1] = s; // metto il nuovo elemento nella
// locazione liberatasi
}
public static void main(String[] args)
{
String [] dizionario = {"andrea", "bastardo", "cena", "pippo", "rosso", "saluto", "treno"};
String [][] S = { {"ciao", "miao", "suca"},
{"fottiti", "ciuccia", "berun"},
{"ciuccio", "testa", "forse"} };
String [] dizionario_aggiornato = Metodo(S, dizionario);
for(int i=0; i<dizionario_aggiornato.length; ++i)
System.out.println(dizionario_aggiornato[i]);
}
}