C - как проверить элемент next->next->value в связанных списках (AVL-дерево)

Таким образом, в моих исследованиях я получил задачу написать дерево AVL на C, и мне нужно было реализовать функцию баланса. Теперь, в основном, я застреваю, когда мне нужно проверить дочерний элемент моего элемента, который не всегда инициализируется, после чего терминал выдает ошибку, потому что нет дочернего элемента дочернего элемента, мой вопрос: есть ли способ определить это, если есть эта ошибка, просто вставив ноль?

Я использовал другой ветвь if, чтобы проверить, есть ли дочерний элемент, но я считаю его глупым.

            // if(node->left && node->right)  // check if tree have left and right
        // {
            if(node->left->height > node->right->height+1)
            {
                // if(node->left->left && node->left->right)
                // {
                    if(node->left->left->height < node->left->right->height)
                    {
                        AVL_rotate_left(avlt, node->left);
                    }
                // }
                AVL_rotate_right(avlt, node);
            }

Терминал:

Füge 12 ein...
Füge 2 ein...
Speicherzugriffsfehler   -// Memory access error

0 ответов

Другие вопросы по тегам