Forum by laureateci.it
[ Home | REGOLE FORUM | Tutti i blog | Profilo | Registrati | CHAT | Discussioni Attive | Discussioni Recenti | Segnalibro | Msg privati | Sondaggi Attivi | Utenti | Download Informatica | Download ICD | Download TPS | Download Magistrale | Download Specialistica | Giochi | Cerca nel web | cerca | faq | RSS ]
Nome Utente:
Password:
Salva Password
Password Dimenticata?

 Tutti i Forum
 ITPS - Secondo Anno
 Algoritmi e Strutture Dati + Lab.
 Dubbio sui grafi

Nota: Devi essere registrato per poter inserire un messaggio.
Per registrarti, clicca qui. La Registrazione è semplice e gratuita!

Larghezza finestra:
Nome Utente:
Password:
Modo:
Formato: GrassettoCorsivoSottolineatoBarrato Aggiungi Spoiler Allinea a  SinistraCentraAllinea a Destra Riga Orizzontale Inserisci linkInserisci EmailInserisci FlashInserisci Immagine Inserisci CodiceInserisci CitazioneInserisci Lista Inserisci Faccine
   
Icona Messaggio:              
             
Messaggio:

  * Il codice HTML è OFF
* Il Codice Forum è ON

Smilies
Approvazione [^] Arrabbiato [:(!] Bacio [:X] Bevuta [:273]
Caldo [8D] Compiaciuto [8)]    
compleanno [:269]
Davvero Felice [:D] Diavoletto [}:)] Disapprovazione [V] Domanda [?]
Felice [:)] Fumata [:29] Goloso [:P] Imbarazzato [:I]
Infelice [:(] Morte improvvisa da [:62]
Morto [xx(] Occhio Nero [B)] Occhiolino [;)] Palla 8 [8]
pc [:205]    
Riproduzione [:76]
Scioccato [:O]      

   Allega file
  Clicca qui per inserire la tua firma nel messaggio.
Clicca qui per sottoscrivere questa Discussione.
    

V I S U A L I Z Z A    D I S C U S S I O N E
jhix Inserito il - 14/12/2007 : 15:04:04
Scusate ho un dubbio sui grafi.
i grafi non hanno un ingresso particolare, giusto?
bisogna, tramite un nodo, continuare l'esplorazione, giusto?
ma allora come posso passare ad una funzione solo un grafo senza alcun nodo di partenza?
vi prego risp.
9   U L T I M E    R I S P O S T E    (in alto le più recenti)
boom2112 Inserito il - 16/12/2007 : 11:01:41
si si infatti e proprio quello che sto facendo pure io.
jhix Inserito il - 16/12/2007 : 10:38:40
grazie mi siete stati molto utili. cmq risp a l'ultima domanda:
se stai facendo l'esonero dovresti partire dalla radice e trovare il nodo in cui, come etichetta trovi il valore passato, io sto facendo cosi.
ciao
noname Inserito il - 15/12/2007 : 20:41:50
Mah, credo che se comunque realizzi le funzioni delle specifiche, puoi aggiungere qualche altra funzione. Non credo che il sommo si incavoli.

Oppure la realizzi come funzione esterna.
Occhio però, ci possono essere più nodi con la stessa etichetta...

boom2112 Inserito il - 15/12/2007 : 16:33:28
scusatemi ragazzi ma avendo le specifiche dei grafi come ha detto il prof non e possibile sapere a che nodo appartiene l'etichetta che viene passata quindi possiamo anche ampliare le specifiche mettendo una operazione che dato in input un tipoelem mi dia il nodo a cui corrisponde???
noname Inserito il - 15/12/2007 : 11:23:44
Si questa è una soluzione.

Ma ora leggendo il Bertossi trovo scritto:
"nelle realizzazioni che verranno proposte si supporà che gli n nodi siano individuati da numeri compresi tra 1 e n"

Quindi i nodi sono identificati da numeri da 1 a n!
E quindi anche nella realizzazione a puntatori!

Ora mi è tutto più chiaro, mi era sfuggito questo particolare!

Il nodo nella versione a puntatori è comunque identificato da un numero, quindi nelle firme il nodo è sempre il nodo numero n e non un puntatore.
Dunque i puntatori li uso solo internamente per la memorizzazione di celle che hanno un campo n = numero_nodo che lo identifica.

genius Inserito il - 15/12/2007 : 10:58:01
In teoria dovresti usare come tipo di dato "nodo"... quindi se in un algoritmo usi questo piuttosto ke puntatori o interi, dovresti avere l'astrazione ke ti serve...
noname Inserito il - 15/12/2007 : 10:41:30
Citazione:
Messaggio inserito da DartFener



Tutte le realizzazioni dei grafi prevedono un elenco dei nodi contenuto, o in un vettore, o in una lista dinamica. E non puoi scorrerle da funzioni esterne alla realizzazione.




Giustissimo, non ho specificato che la lista deve essere usata internamente al grafo.

Parlando di realizzazioni mi sorge un dubbio.
Si dice che le varie realizzazioni devono implementare le stesse interfacce, date dalle specifiche.
Ora, se io realizzo un grafo con liste dinamiche di adiacenza, mi troverò a lavorare con puntatori a nodi quindi nodo=puntatore a nodo.
Se lo realizzo con matrici di adiacenza il nodo non sarà un puntatore a nodo ma un intero.
Quindi tra le due realizzazioni, anche se le chiamate sono le stesse, le firme dei metodi cambiano.

Sto sbagliando qualcosa?

A voi a che livello arriva l'interscambiabilità delle realizzazioni?
Se a me per la lista, bastava cambiare il file d'include, per passare tra due realizzazioni senza modificare algoritmi esterni, con i grafi non è più così...



DartFener Inserito il - 15/12/2007 : 09:12:23
Citazione:
Messaggio inserito da noname
Se invece devi esplorare velocemente tutti i nodi, magari per controllare che non ci sono duplicati, ti conviene mantenere una lista di nodi, che puoi scorrere senza badare alle adiacenze. Insomma una vera e propria lista.



Tutte le realizzazioni dei grafi prevedono un elenco dei nodi contenuto, o in un vettore, o in una lista dinamica. E non puoi scorrerle da funzioni esterne alla realizzazione.

Per jhix, se la funzione è esterna alla dichiarazione della classe grafo, bisogna passare, ovviamente, un oggetto di tipo grafo (o una funzione che restituisce un oggetto di tipo grafo).

Ricordate che le funzioni che non fanno parte della dichiarazione della classe non devono vedere la realizzazione perchè devono funzionare per qualsiasi realizzazione venga utilizzata per creare la classe.

Per utilizzare un grafo ti serve un nodo di partenza e, se non lo passi alla funzione, allora deve essere questa a creare un valore che sia un nodo. Ma tutto dipende da che cosa deve fare questa funzione...
noname Inserito il - 14/12/2007 : 19:07:05
I grafi non hanno un ingresso particolare, giustissimo.
Quando tramite un nodo devi proseguire l'esplorazione, devi passare ai nodi adiacenti. A questi ci passi controllando la matrice di adiacenza, oppure le liste di adiacenza a seconda della realizzazione.

Perchè alla funzione devi passare solo il grafo?
Se devi fare una funzione di ricerca (stai facendo l'ultimo esonero di lab? :) ) hai bisogno del grafo da esplorare, il nodo da cercare e ovviamente un nodo da cui partire.
In un grafo ogni nodo è identificato dall'etichetta, ovvero dal valore contenuto nel nodo. E anche nel caso in cui i nodi non hanno etichetta, li puoi identificare da qualcosa, tipo la posizione nel vettore, o l'indirizzo.
Quindi se devi cercare il nodo 4, devi cercare il nodo che contiene il valore 4. Infatti il grafo è un insieme di nodi, e un insieme di archi. E in un insieme non ci sono valori duplicati.
Se stai facendo l'esonero, hai pure il nodo da cui partire: la radice.
In teoria se devi esplorare tutto il grafo, dovresti farlo da ogni nodo o al massimo non da quelli che raggiungi a partire dal primo nodo. Infatti se hai un grafo non connesso non raggiungerai mai partendo da un nodo di una parte, i nodi della parte separata.
Se hai un grafo orientato, vale la stessa cosa anche se è connesso, a causa dei versi degli archi.
Per cui se devi esplorare il grafo per trovare un cammino da un nodo di partenza ad un altro, ok, ti muovi sui nodi adiacenti, li marchi e se non trovi il cammino amen.
Se invece devi esplorare velocemente tutti i nodi, magari per controllare che non ci sono duplicati, ti conviene mantenere una lista di nodi, che puoi scorrere senza badare alle adiacenze. Insomma una vera e propria lista.

Un saluto!

P.S.: spero di aver capito bene i grafi, altrimenti potrei aver scritto caz....



Forum by laureateci.it © 2002 - 2012 Laureateci Communications Torna all'inizio della Pagina
Il DB ha risposto in 0,07 secondi.

TargatoNA.it | SuperDeejay.Net | Antidoto.org | Brutto.it | Equiweb.it | Snitz Forum 2000