Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    1,258

    [c] inserisci nodi - albero

    ciao a tutti..
    devo fare una funzione che ricorsivamente richiami creanodo per creare i nodi in un albero. Ho fatto la versione iterativa, ma sinceramente non vedo come si possa e cosa serve fare quella ricorsiva in questo caso. Cmq devo convertirla o farne una ricorsiva.
    Help! help! help! help! help! :bubu:

    codice:
    struct nodo *alb_bin(void)
    {
      struct nodo *p = NULL;
      int x;
    
      do {
        printf("\nInserisci un numero (0 per finire): ");
        scanf("%d", &x);
    
        if(x!=0)
        p=crea_nodo(p, x);   /*invoca crea_nodo() */
        printf("%d", p->inf);
      }
      while(x!=0);
    
      return(p); /* Ritorna la radice */
    }

  2. #2
    senza avere la struct e senza avere la crea_nodo è un po' dificile aiutarti...

    per esempio non si capisce che tipo di albero sia il tuo ^__^

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    1,258
    codice:
    struct nodo {
      int inf;
      struct nodo *alb_sin;
      struct nodo *alb_des;
    };
    
    struct nodo *crea_nodo(struct nodo *p, int val)
    {
    if(p==NULL){ /*il punto di inserimento è stato reperito */
      /* Creazione del nodo */
      p = (struct nodo *) malloc(sizeof(struct nodo));
      p->inf=val;
      p->alb_sin = NULL;
      p->alb_des = NULL;
    }
    else {
      if(val > p->inf)
        /* visita il sottoalbero destro */
        p->alb_des = crea_nodo(p->alb_des, val);
      else
        if(val < p->inf)
        /* visita il sottoalbero sinistro */
        p->alb_sin = crea_nodo(p->alb_sin, val);
    }
    return(p); /* Ritorna il puntatore alla radice */
    }

  4. #4
    Utente di HTML.it L'avatar di infinitejustice
    Registrato dal
    Nov 2001
    residenza
    Barcelona
    Messaggi
    772
    Deve essere bilanciato?
    Live fast. Troll hard.
    Pythonist | Djangonaut | Puppeteer | DevOps | OpenStacker | Lost in malloc
    Team Lead @Gameloft Barcelona

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    1,258
    no...volevo fare la prima funzione postata in modo ricorsivo :bubu:
    ma non sono riuscito :bubu:

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.