Visualizzazione dei risultati da 1 a 3 su 3

Discussione: [c Ricorsione]

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    95

    [c Ricorsione]

    Salve,

    Scusate ho trovato questo algoritmo per l'attravversamento ricorscivo in preordine(prima la radice e poi i figli) di un albero ma non capisco perchè passa ricorsivamente come parametro anche l'indirizzo della funzione visit..perchè? non basta richiamare semplicemente visit(h) invece di (*visit)(h)??Il passaggio di un puntatore alla funzione in questo caso che utilità ha?

    void traverse(link h, void (*visit)(link)){
    if(h==NULL) return; //se è il ramo dx e sx di una foglia
    (*visit)(h); //visito il nodo
    traverse(h->l, visit);//vado a visitare il ramo sx
    traverse(h->r, visit);//.. dx
    }

    Grazie!

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    25
    dato che chi ha scritto il codice non sapeva che operazione sarebbe stata compiuta sul nodo dell'albero ha inserito un puntatore a funzione tra gli argomenti in modo che tu potessi scrivere una funzione adatta a ciò che ti serve e poi passarla alla funzione traverse(...) senza dover toccare il codice di traverse stessa.

  3. #3
    Potenza del C....
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.