Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    48

    [C++] Ricerca elemento in un ABR

    Salve a tutti,
    Mi trovo a dover affrontare questo problema
    Ho un albero binario di ricerca avente ogni nodo questi campi { stringa nome, int key }
    Seguendo la normale ricerca di un ABR, dovrei cercare l'elemento facilmente confrontando la key di tutti i nodi partendo dalla radice, e pian piano scendere verso destra o sinistra.
    In questo problema invece mi viene chiesto di cercare il nodo confrontando il nome del nodo.
    Io ho optato per una visita InOrder, in modo che visitavo tt i nodi fino a giungere a qll interessato ma non funziona sempre...

    codice:
    Nodo* RBTree::SearchInOrder(Nodo *&x, string &v)
    {
        if(x == Nil)  
        {
            x->valore = "";  
            return x;
        }
    
        SearchInOrder(x->right, v);  
    
        if(x->valore.compare(v) == 0)
        {
            return x;
        }
    
        SearchInOrder(x->left, v);    
    }
    Se avete qualke suggerimento, anke senza usare questa strada ma tutt'altro, ve ne sarei grato!


    Ps. Come nodo di parametro viene data la radice

  2. #2
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    codice:
    Vector<Nodo *> daVisitare;
    daVisitare.push(root);
    Nodo *tmp;
    
    while(daVisitare.size()!=0) {
      tmp = daVisitare.pop();
      if(tmp == null) continue;
      if(tmp è il nodo giusto) break;
      daVisitare.push(tmp->right);
      daVisitare.push(tmp->left);
    }
    return tmp;
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    48
    Grazie scara, appena torno a asa provo usando un vector, cm hai fatto tu

  4. #4
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    Quote Originariamente inviata da Peppyno Visualizza il messaggio
    Grazie scara, appena torno a asa provo usando un vector, cm hai fatto tu
    Quel codice simula il funzionamento dello stack di chiamata.
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

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.