Funzioni pop() e push() per ArrayList

di il
3 risposte

Funzioni pop() e push() per ArrayList

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;
//   	}

3 Risposte

  • Re: Funzioni pop() e push() per ArrayList

    Possibile che nessuno mi sa aiutare?
  • Re: Funzioni pop() e push() per ArrayList

    Non e' che nessuno vuole rispondere, e' che delle volte si puo avere anche altri impegni, immagino che gran parte delle persone che danno risposte in questo forum siano dei lavoratori e padri di famiglia( e qui credo che li ho giustificati a sufficienza e non serve aggiungere altro ).
    Come prima cosa vorrei chiederti cos'e' una visita di profondita'?
    In ogni caso penso che l'ArrayList sia molto simile a Vector ( che hanno fatto usare a me ), e dal nome della variabile pila dell'esempio immagino che tu voglia costruire una pila(stack), quindi come prima cosa devi costruire una classe Pila, per esempio, con al suo interno una variabile privata di tipo ArrayList, e usata come fosse una struttura dati a pila inserende e togliendo elemnti attraverso i metodi push()/pop(), ed e' per questo che la variabile Arraylist deve essere privato perche' in questo modo non si potra accedere esternamente alle funzioni e variabili di ArrayList limitandolo esclusivamente alla simulazione di una struttura a pila.
    quindi push e pop dovranno inserire opportunamente i dati all'interno della variabile ArrayList.
  • Re: Funzioni pop() e push() per ArrayList

    Se hai letto le librerie e sai cosa fanno pop e push puoi BANALMENTE ricreare il meccanismo con un arraylist.

    la mia domanda è, sei obbligato ad usare AL oppure hai scelto??? se la risposta è la due, rivedi il tuo ragionamento perchè queste strutture hanno bisogno di accesso immediato sia in testa che in coda...quindi AL non è propriamente indicato
Devi accedere o registrarti per scrivere nel forum
3 risposte