Ho creato un metodo iterativo che data una stringa s ed un intero n verifica se la stringa s è presente in una lista almeno n volte...
Il metodo iterativo credo vada bene.Ho problemi sul metodo ricorsivo che non funziona come dovrebbe...Qualcuno potrebbe aiutarmi pls?
vi lascio le classi create qua sotto..
package lista2020;
public class Elemento {
String n;
Elemento successivo;
public Elemento(String n, Elemento successivo){
this.n=n;
this.successivo=successivo;
}
}
package lista2020;
public class Lista2020{
public static void main(String[] args) {
Lista l=new Lista(30);
System.out.println(l.verifica("stringa10", 1));
System.out.println(l.verificaR("stringa20", 2));
}
}
package lista2020;
public class Lista {
Elemento testa=null;
int contatore=0;
public Lista(int n){
for(int i=n;i>=1;i--){
testa=new Elemento("Stringa"+i,testa);
}
}
public boolean verifica(String s, int n) {
Elemento e = testa;
int c = 0;
while (e != null && c < n) {
if (e.n.equals(s)) {
c++;
}
e = e.successivo;
}
if (c == n) {
return true;
} else {
return false;
}
}
/*
/**
*
* @param n
* @param s
* @return
*/
public boolean verificaR( String s,int n){
return verificaR(testa,n,s);
}
private boolean verificaR(Elemento e,int n ,String s){
if(n==0||contatore==n){
return true;
}
else verificaR(testa.successivo,n,s);
if(e.n.equals(s)){
contatore++;
}
return verificaR(testa.successivo,n,s);
}
}