Пишу класс AVL-дерева на C++ (если кто не знает - это самобалансирующееся дерево). Дерево хранится в памяти посредством такой вот структуры:
- Код: Выделить всё
struct Tree {
int key, value, height;
Tree *p, *l, *r; // родитель, левое поддерево, правое поддерево
}
Видимо, я чего-то не понимаю, но суть проблемы в следующем.
При создании нового элемента, поля структуры l и r приравниваются к NULL. Однако, в определенный момент времени эти указатели становятся равными 0xcccccccc, в следствие чего не выполняется условие типа (node->l == NULL) и все работает некорректно.
Чем может быть вызвано такое явление?