Salve ragazzi,
Ho un problema con la funzione inserimento di un albero binario:
Ho due classi:
-nodo con chiave puntatore sx e puntatore dx
-Una tree
Nella funzione inserisci:
Se uso get quando richiamo inserisci mi da errore "Non-const lvalue reference to type Nodo* cannot bind to a temporary of type Nodo*"
codice:Nodo* get_sx(){return sx;}
codice:void tree::insert (Nodo* &nodo, int key) { while (nodo!=nullptr) { if(key<nodo->get_chiave()) { return inserisci(nodo->get_sx(),key); //<--Non-const lvalue reference to type Nodo* cannot bind to a temporary of type Nodo* } if(key>nodo->get_chiave()) { return inserisci(nodo->get_dx(),key); //<--Non-const lvalue reference to type Nodo* cannot bind to a temporary of type Nodo* } } if(nodo==nullptr) { Nodo* nuovo_n= new Nodo(key); nodo=nuovo_n; } }
Se invece rendo pubblico il nodo sinistro e destro e richiamo la funzione senza utilizzare get come seguenon ho errori.codice:return inserisci(nodo->sx,nuovo);
Qualcuno sa come posso, risolvere?
Ho provato anche a farlo iterativo ma non scrive i dati, ho provato con un puntatore d'appoggio e nemmeno ho avuto buoni risultati.
Grazie in anticipo.

					
					
					
						
  Rispondi quotando
			