Wskźniki. Kwestia z przypisaniem - Drzewa Poszukiwań Binarnych

Wskźniki. Kwestia z przypisaniem - Drzewa Poszukiwań Binarnych
LA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 60
0

Witam, wydaje mi się że mam banalny problem , ale jakoś brakuje mi dziś sił i pomysłów jak go rozwiązać. Otóż implementuje algorytm Drzew Binarnych dokładnie funkcje wstawiania.
oto kod:

Kopiuj
typedef struct wezel *Wskwezla; /* wskaznik na wezel drzewa  */
typedef struct wezel{
	int klucz;
	Wskwezla left, right, p;
	int kolor;
} Twezla ;  /* typ wezla */
//...
void TreeInsert(Wskwezla T, Wskwezla z)
{  
    Wskwezla x=T,
             y = nil; //Y bedzie zawsze ojcem x'a

    while (x!=nil)
    {
        y = x;
        if (z->klucz<(x->klucz)) 
            x = x->left;
        else 
            x = x->right;
    }
    z->p = y;
    if (y==nil)
        T = z; // Problem jest TU
    else if ((z->klucz)<(y->klucz))
        y->left = z;
    else y->right = z;

}
//...
 

No i właśnie w tej funkcji chce zastąpić węzeł T nowym węzłem z . W debugerze widzę ze to działa ale jakby na kopi tego T, gdyż po wyjściu z tej funkcji, T jest takie jakie było.
Jakieś pomysły jak to rozwiązać?

_13th_Dragon
  • Rejestracja: dni
  • Ostatnio: dni
0
Kopiuj
typedef struct drzewo { Wskwezla root; } TTree;
void TreeInsert(TTree *tree,int klucz)
...
Kopiuj
Wskwezla  TreeInsert(Wskwezla T,int klucz)
Kopiuj
void TreeInsert(Wskwezla *T,int klucz)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.