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

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:

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ć?

0
typedef struct drzewo { Wskwezla root; } TTree;
void TreeInsert(TTree *tree,int klucz)
...
Wskwezla  TreeInsert(Wskwezla T,int klucz)
void TreeInsert(Wskwezla *T,int klucz)

1 użytkowników online, w tym zalogowanych: 0, gości: 1