Ciao a tutti,
dovrei scrivere una funzione che effettua una visita in profondità.
Sto prendendo spunto dal codice di un esercizio dove viene fatta così:
LinkedList<T> visitaDFS(){
LinkedList<T> lista=new LinkedList<T>();
LinkedList<NodoVP<T>> pila=new LinkedList<NodoVP<T>>();
//inizializzo la pila
pila.push(radice());
while(pila.size()!=0){
//estraggo
NodoVP<T> temp=pila.pop();
//visito
lista.addLast(temp.getInfo());
//inserisco i figli di chi ho visitato.
//Essi sono da ricercare!!
for(int i=0;i<numNodi();i++)
if(padri[i]==temp)
pila.push(nodi[i]);
}
System.out.println("Visita in profondita': ");
stampa_visita(lista);
return lista;
}
usando le funzioni pop() e push() che sono funzioni della LinkedList.
Io sto usando un ArrayList e le funzioni pop() e push() non sono specificate.
Come posso fare per specificarle?
Questo è il mio codice
ArrayList<T> visitaDFS(){
// ArrayList<T> lista=new ArrayList<T>();
// ArrayList<NodoLF<T>> pila=new ArrayList<NodoLF<T>>();
//
// //inizializzo la pila
// pila.push(getRadice());
// while(pila.size()!=0){
// //estraggo
// NodoLF<T> temp=pila.pop();
// //visito
// lista.add(temp.getInfo());
// //inserisco i figli di chi ho visitato.
// //Essi sono da ricercare!!
// for(int i=0;i<numNodi();i++)
// if(padri[i]==temp)
// pila.push(nodi[i]);
// }
// System.out.println("Visita in profondita': ");
// stampa_visita(lista);
// return lista;
// }