ho un albero con i nodi che sono fatti cosi:
codice:
struct node {
char *name;
list children;
node_type type;
list attributes;
};
typedef struct node *node;
dove list è:
codice:
struct NodoLista {
void *value;
struct NodoLista *next;
};
typedef struct NodoLista *list;
ora io devo cercare un elemento (un nodo) dentro a un albero n-ario. i nodi dell'albero n-ario possono avere una lista figli, come si vede da sopra (nel campo children).
io ho gia fatto delle funzioni di ricerca su alberi n-ari ma avevo glialberi classici con i nodi che avevano semplicemente un puntatore al figlio e uno al fratello. e la ricerca sarebbe stata semplicemente:
codice:
int find(tree t, int k)
if (t == NULL) return 0;
else if (t->info == k) return 1;
else if (k < t->info) return find(t->son,k);
else return find(t->brother,k);
ma ora come potrei fare per trovare un nodo in un albero fatto come sopra? avete qualche suggerimento? grazie