Я получаю эту странную ошибку. в основном я нашел псевдокод из книги и решил реализовать эту функцию в своем красном черном дереве.
Вот код:
void InsertFixtUp(Node<Key,Item> * z)
{
Node<Key,Item> * y = 0;
if(z->parent != 0)
{
while (z->parent->colour==RED){ // first Error here
if (z->parent==z->parent->parent->left){
y=z->parent->parent->right;
if(y->colour==RED) {
//Case 1
z->parent->colour = BLACK;
y->colour=BLACK;
z->parent->parent->colour=RED;
z = z->parent->parent;
} else if (z==z->parent->right){
//Case 2
z=z->parent;
RotateLeft(z);
}
//Case 3
z->parent->colour=BLACK;
z->parent->parent->colour=RED;
RotateRight(z->parent->parent);
} else if (z->parent==z->parent->parent->right){
y=z->parent->parent->left;
if(y->colour==RED) {
//Case 1
z->parent->colour = BLACK;
y->colour=BLACK;
z->parent->parent->colour=RED;
z = z->parent->parent;
} else if (z==z->parent->left){
//Case 2
z=z->parent;
RotateRight(z);
}
//Case 3
z->parent->colour=BLACK;
z->parent->parent->colour=RED;
RotateLeft(z->parent->parent);
}
}
root->colour=BLACK;
}
}
первая ошибка в списке expected ‘)’ before ‘;’ token
в первом цикле. что подразумевается под этой ошибкой?
Задача ещё не решена.
Других решений пока нет …