2013-12-14 5 views
-4

Я пишу программу для словаря. В программе вы можете добавлять и удалять слова и печатать текущие и удаленные слова. Моя проблема заключается в моем методе удаления, очевидно, что он правильно удаляет слова, но не создает связанный список, в котором хранятся эти удаленные слова, а затем печатаются. Поэтому он только печатает последнее слово, которое я удалил, а не все слова, которые я удалил. Вот метод:Удаление из связанного списка

public void delete(String b) 
{ 
    WordMeaningNode current = this.list; 
    WordMeaningNode previous = null; 
    WordMeaningNode temp; 

    //While list is empty, return. 
    if (this.list == null) 
    { 
     return; 
    } 

    // While it is not empty.. 
    while (current != null) 
    { 
     if (current.word.getWord().equalsIgnoreCase(b)) 
     { 
      if (current == this.list) 
      { 

       this.list = this.list.next; 
      } 
      else 
      { 

       previous.next = current.next; 
      } 

      temp = current; 
      del = temp; 
      current.next = null; 
      return; 
     } 

     previous = current; 
     current = current.next; 
    } 
} 

Может ли кто-нибудь увидеть, где моя ошибка?

ответ

0

Я не уверен, что такое del, но при условии, что это узел в списке удаленных слов, все, что вы делаете, назначает удаленное слово del в del = temp. Если вы хотите добавить его на связанный список дель вы должны создать новый узел и добавить его к примеру ...

WordMeaningNode newDelNode; 
newDelNode = temp; 
del.next = temp; 

что-то в этом роде ... Я не совсем уверен, потому что это немного трудно читать ваш код.

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