2014-10-13 2 views
0

Я попытался написать следующую функцию для удаления наименьшего узла в связанном списке. Но я получаю ошибку и не могу ее исправить. пожалуйста помоги.удалить наименьший узел в связанном списке

ошибка -> Ошибка 1 Ошибка C4703: потенциально неинициализированная локальная переменная указатель 'trailSmall' используется

вот мой код:

void linkedListType<T>::deleteSmallest() 
{ 
nodeType<T> *current; 
nodeType<T> *trailCurrent;  // used for pointing to node just before current 

nodeType<T> *small; 
nodeType<T> *trailSmall;  

if (first == NULL) 
    cout << "Cannot delete from an empty list." << endl; 
else 
    if (first->link == NULL) 
    { 
     first = NULL; 
     delete last; 
     last = NULL; 
    } 
    else 
    { 
     small = first; 
     trailCurrent = first; 
     current = first->link; 

     while (current != NULL) 
     { 
      if (small->info > current->info) 
      { 
       trailSmall = trailCurrent; 
       small = current; 
      } 

      trailCurrent = current; 
      current = current->link; 
     } 

     if (small == first) 
      first = first->link; 
     else if (small != first) 
     { 
      trailSmall->link = small->link; 

      if (small == last) 
       last = trailSmall; 
     } 

     delete small; 
    } 
} 

ответ

0

Сообщение об ошибке (необычно) кристально чистое: код может читать trialSmall, но не всегда устанавливает что-либо. Но я думаю, что вы в безопасности; единственный доступ к trialSmall - это если вы получаете нетривиальный случай, и, кроме того, если small != first (который вам не нужно проверять явно, так как вы только что определили, что small==first неверно); но в том же месте, где small меняется, где trialSmall меняется. (Это довольно тонкая вещь для компилятора.)

Я бы просто начал и инициализировал trialSmall до first, чтобы успокоить компилятор.

+0

Большое спасибо, даже я понял, что мне нужно инициализировать trailSmall где-то, но я не мог понять, что мне следует инициализировать. Глупая ошибка! еще раз спасибо – Kashish

Смежные вопросы