Cześć Wam,
byłbym wdzięczny za pomoc z następującym problemem: mam w C++ funkcję (jedną z kilku służących do równoważenia drzewa binarnego w programie dot. drzew AVL), a chciałbym ją zapisać w [C]. Jednak nie wiem jak dokładnie działa referencja na wskaźnik i jak to przenieść na C (i czy da się jakoś sensownie w ogóle)... Czy można po prostu usunąć symbol '&'?
Dzekuję!
struct AVLNode
{
AVLNode * up, * left, * right;
int key, bf;
};
void RL(AVLNode * & root, AVLNode * A)
{
AVLNode * B = A->right, * C = B->left, * p = A->up;
B->left = C->right;
if(B->left) B->left->up = B;
A->right = C->left;
if(A->right) A->right->up = A;
C->left = A;
C->right = B;
A->up = B->up = C;
C->up = p;
if(p)
{
if(p->left == A) p->left = C; else p->right = C;
}
else root = C;
if(C->bf == -1) A->bf = 1; else A->bf = 0;
if(C->bf == 1) B->bf = -1; else B->bf = 0;
C->bf = 0;
}