Discussione: [C++]Albero
View Single Post
Old 05-06-2004, 20:21   #2
/\/\@®¢Ø
Bannato
 
L'Avatar di /\/\@®¢Ø
 
Iscritto dal: Jul 2000
Città: Malo (VI)
Messaggi: 1000
Re: [C++]Albero

Il problema principale e' che AddElem modifica solo la copia locale del puntatore, e non quella che e' presente nella struttura del padre.
Ti conviene cambiare il metodo facendo si' che la nuova foglia venga ritornata come valore da modificare nel padre.
Questo fra l'altro rende possibile creare l'albero vuoto con estrema semplicita':

Codice:
		TreeNode* AddElem(TreeNode *aux, int val)
		{
			if(aux == NULL)
			{
				return new TreeNode(val, NULL, NULL);
			}
			else if(val <= aux->val)
				aux->left =AddElem(aux->left, val);
			else if(val > aux->val)
				aux->right=AddElem(aux->right, val);
			return aux
		};

		Tree()
		{
			root = NULL;
		};
		void Add(int val)
		{
			root = AddElem(root, val);
		};
/\/\@®¢Ø è offline   Rispondi citando il messaggio o parte di esso