Pagina 1 di 6 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 54
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    322

    [c] cercare un nodo in un albero n-ario

    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

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    322
    aiuto er favoreeeeeeeeeeeee..

    devo far tornare alla funzione di ricerca, il puntatore al nodo che ha trovato..

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    322
    niente????

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    322

    [c] puntatori, come accedere a un determinato campo?

    allora.. la situazione è la seguente:

    ho due strutture dati: lista e nodi. I nodi hanno 4 campi al loro interno. di cui uno è un campo di tipo list, e continee la lista dei nodi "figli" di quel nodo.
    LIst e node sono cosi fatti:

    codice:
    struct NodoLista {
    	void *value;
    	struct NodoLista *next;
    };
    
    typedef struct NodoLista *list;
    
    struct node {
    	char *name;
    	list children;
    	node_type type;
    	list attributes;
    };
    
    typedef struct node *node;
    ora, supponiamo di avere un certo nodo PADRE.
    il mio problema è accedere a uno dei nodi figli di PADRE. Nota: Io nella funzione nella quale sto lavorando ho a disposizione il puntatore a PADRE.

    Ho provato a fare:

    struct node FIGLIO = (struct node)(PADRE->children)->value;

    e poi provo a stampare printf("%s",FIGLIO->name);
    ma mi da valori sballati. imagino che sto sbagliando qualcosa a livello di puntatori. chenon riesco a prendere la giusta locazione di memoria dove risiede il nodo FIGLIO.

    COME POSSO FARE?? AIUTO PER FAVORE.. SONO ALLA DISPERAZIONE!!

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Un attimo ... stai sbagliando qualcosa ...

    Il campo name e' per la struttura di tipo node ...

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    322
    Originariamente inviato da oregon
    Un attimo ... stai sbagliando qualcosa ...

    Il campo name e' per la struttura di tipo node ...
    si infatti name è della strutture node..
    infattio il mio obbiettivo è riuscire ad accedere ai nodi contenuti nella lista children di un nodo..

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da jacopos81
    si infatti name è della strutture node..

    infattio il mio obbiettivo è riuscire ad accedere ai nodi contenuti nella lista children di un nodo..
    Quindi all'elemento

    value

    della struttura NodoLista ...

    E allora perche' provi ad eseguire

    printf("%s",FIGLIO->name);

    ??

  8. #8
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472

    Moderazione

    Originariamente inviato da jacopos81
    allora.. la situazione è la seguente
    La situazione è che continui ad aprire discussioni nuove ogni volta che la situazione del problema originale si evolve, e te l'ho già fatto presente in questa sede, in cui ho chiuso la discussione.

    Non chiudo la discussione che hai aperto solo perché sono già stati inseriti interventi utili, anzi la unisco a quella esistente, ma ti esorto di fare maggiore attenzione (se l'apertura è involontaria, ma dopo un avvertimento ci si dovrebbe già regolare).
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    322
    Originariamente inviato da oregon
    Quindi all'elemento

    value

    della struttura NodoLista ...

    E allora perche' provi ad eseguire

    printf("%s",FIGLIO->name);

    ??
    allora..perche ho pensato che siccome nella lista root->children ci sono dei nodi (quindi il campo value di nodolista contiene un nodo), per stampare il nome del nodo, si dovrebbe fare inquel modo.. sto sbagliando??

    è un po che ci sbatto.. ma non riesco proprio a capire come fare per accedere a quei nodi..

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    322

    Re: Moderazione

    Originariamente inviato da alka
    La situazione è che continui ad aprire discussioni nuove ogni volta che la situazione del problema originale si evolve, e te l'ho già fatto presente in questa sede, in cui ho chiuso la discussione.

    Non chiudo la discussione che hai aperto solo perché sono già stati inseriti interventi utili, anzi la unisco a quella esistente, ma ti esorto di fare maggiore attenzione (se l'apertura è involontaria, ma dopo un avvertimento ci si dovrebbe già regolare).

    mi scuso con i moderatori... ho aperto un'altra disussione per cercare disperatamente aiuto visto che di la non mi rispondeva nessuno e inun certo senso anche perche lobbiettivo del post inquesto caso è un po diverso..

    non sto piu parlando di ricerca ma semplicemente di come accedere a un campo, contenuto in una struttura dati.. cmq mi scuso ancora e grazie per non aver chiuso il post..

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 © 2025 vBulletin Solutions, Inc. All rights reserved.