C' è su wikipedia (leggi l' articolo), comunque ti faccio un esempio:
Parametri: N numeri degli elementi del grafo, i indice del prossimo nodo da inserire.E' ricorsiva ma si potrebbe anche fare con una pila.codice:void dfs(struct tnode* p,int v[]) { static int i=0; if(p!=NULL) { v[i++]=p->count; dfs(p->right,v); dfs(p->left,v); } }
Il grafo è un albero per cui ogni nodo viene visitato una volta.
Ora hai l' array disordinato, e hai chiamato N volte la procedura per ottenere tutti i valori dell' array.
Rimane solo da ordinarlo, se usi il qsort di stdlib.h in totale spendi n+nlogn.

Rispondi quotando