Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di wino_7
    Registrato dal
    Dec 2006
    Messaggi
    537

    Ricorsione su albero bianario

    Salve a tutti secondo voi questa ricorsione che ho scritto fa veramente la somma dei valori contenuti nelle foglie di un albero binario?

    Il parametro k della funzione è la grandezza dell'albero (che il realtà non so a che mi può servire, ma nell'esercizio dice esplicitamente che deve essere data in ingresso)

    Codice PHP:
    typedef int itemtype;
    typedef struct nodo *ptree;

    typedef struct nodo{
        
    itemtype item;
        
    ptree leftright;
    }
    nodedescriptor;

    int somma(ptree tint k){
        if(
    == null) return 0;
        return 
    t->item somma(left(t), k) + somma(right(t), k);


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

    Moderazione

    Il linguaggio va indicato anche nel titolo, come da Regolamento.

    Qui l'ho aggiunto io.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,326
    Di fatto ci sono due casi base da considerare: se il nodo è vuoto, va restituito 0 (come fai tu) ma se il nodo è una foglia va restituito il suo valore. Un esempio:

    codice:
    typedef struct node {
    	int data;
    	struct node * l_child;
    	struct node * r_child;
    } Node;
    
    ...
    
    int sum(Node * node)
    {
    	if (node == NULL)
    		return 0;
    
    	if (node -> l_child == NULL && node -> r_child == NULL)
    		return node -> data;
    
    	return (node -> data + sum(node -> l_child) + sum(node -> r_child));
    }
    tra l'altro non ho capito a cosa dovrebbe servirti quel parametro k.
    every day above ground is a good one

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.