kavinderrana121 Ответов: 1

Как сохранить адрес узла BST в очереди?


Цитата:
Предупреждение: делает целое число из Указателя без приведения:
Примечание->Bstnode-это узел двоичного дерева amp-это структура очереди




Является ли эта ошибка, которую я получаю, связана с amp->array[amp->rear]=root; потому что root-это указатель, если тогда каким будет способ, если я хочу сохранить адрес struct Bstnode, который является адресом узлов BST в очереди. Пожалуйста, дайте указатель на мою ошибку

Что я уже пробовал:

void enqueue(struct queue* amp,struct Bstnode* root){
    if(isfull(amp))
       return;
    else if(isempty(amp))
    {
       amp->rear=0;
       amp->front=0;
       amp->array[amp->rear]=root;
    }
    else
    {
        amp->rear=((amp->rear+1)%(amp->capacity));
        amp->array[amp->rear]=root;
    }

}

1 Ответов

Рейтинг:
2

Richard MacCutchan

Вы не можете использовать указатель в качестве смещения массива. Если amp->rear если это указатель, то вы должны использовать его как указатель. Было бы более разумно сделать его целочисленным значением для использования в качестве индекса массива.