Visualizzazione dei risultati da 1 a 2 su 2

Discussione: [c] ricerca su albero

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

    [c] ricerca su albero

    ho fatto questa funzione che cerca un nodo in un albero:
    (controllo se l'elemento che cerco è nella radice. se non è cosi, se il nodo ha figli, chiamo ricorsivamente la funzione sul primo figlio, e poi ricorsivamente dovrebbe controllare gli altri)

    codice:
    struct node *cerca(struct node *root,struct node *elemento){
    	printf("nodo in esame: %s\n",root->name);
    	if (strcmp(root->name,elemento->name) == 0) {	// controlla radice
    		printf("trovato\n");
    		return root;
    	} else { 
    		if (root->children == NULL) return NULL;
    		iterator i = get_iterator(root->children);
    		while (has_next(i)) { 
    			node temp = (node)next(i);
    			return cerca(temp,elemento); 
    		}
    		return NULL;
    	}		
    }
    pero non mi funziona la chiamta ricorsiva?? dove sbaglio?

    le strutture node, list e iterator sono le seguenti:
    codice:
    struct NodoLista {
    	void *value;
    	struct NodoLista *next;
    };
    
    typedef struct NodoLista *list;
    
    struct iterator {
    	struct NodoLista *pt;		
    }; 
    
    typedef struct iterator *iterator;
    
    struct node {
    	char *name;
    	list children;
    	node_type type;
    	list attributes;
    };
    
    typedef struct node *node;
    ps:non posso cambiare le strutture

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

    Moderazione

    Stai già parlando del problema della ricerca nell'albero binario in questa discussione.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

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