2012-03-30 10 views
-1

私は生徒のオブジェクトのリンクされたリンクを持っています。基本的には、生徒のデータを生徒オブジェクトとして保存するデータベースです。唯一の問題は、removeStudentメソッドを作成することです。私がこれまでに試したことは、異なる結果が出るかどうかを調べるために、さまざまな部分を変更したことです。今すぐこのコードを使用して、私は運転手の生徒を削除することができますが、削除したい生徒の前にもすべての生徒を削除し、試している生徒の後にデータベースに残っている生徒のみを残します削除する。リンクされたリストからどのようにノードを削除しますか?

public void RemoveElements(Object Student) { 

    LinearNode<Object> current = element; 
    LinearNode<Object> temp = current; 




    while (current.getNext() != null) { 

     temp = current; 
     current = current.getNext(); 


     if(current.getElement() == Student) { 


     temp.setNext(current.getNext()); 
     length--; 
     } 
    } 

} 
+0

質問は何ですか? –

+0

彼は質問タイトルで「隠されています」:「リンクされたリストからノードを削除する方法」(検索の5分後に見つけた) – surfen

答えて

0

現在は削除されるオブジェクトが含まれている場合は、前のノードへの参照を取得し、次のノードでそれを指し示す必要があります。だから、あなたはあなたのリンクリストが

A -> C

いくつかは、あなたのコードで間違っているように見えるしたい、あなたは

A -> B -> C

を持っており、Bは、アイテムが削除されるように含まれてい

1)あなたは上記のことをしていません
2)あなたはあなたのwhileループの前に設定していません。あなたは一番上のコード

LinearNode<Object> current = element;

のために右の前に

current = current.getNext();

3)は、element何であることを行うことができますか?

+0

要素がリストの先頭です。 – Tigh

1
public void RemoveElements(Object Student) { 

    LinearNode<Object> current = element; 
    LinearNode<Object> previous = null; 
    //LinearNode<Object>(student); 



    while (current.getNext() != null) { 

     current = current.getNext(); 


     if(current.getElement() == Student) { 

      length--; 
      element = element.getNext(); 
      if (previous != null) { 
       previous.setNext(element.getNext(); 
      } else { 
       //if you have a pointer to the head element place it element.getNext(); 
      } 


     } 
     previous = current; 
    } 

} 
+0

人の宿題をしないでください。彼らが理解できるようにガイドしてください。 – hvgotcodes

+0

私はリストの終わりをチェックしなかったので、これは完全には機能しませんが、良い点です。 –

+0

+1は他人の宿題をしていないためです。コードは、プロジェクトに盲目的に追加されるよりもよく理解されます。 – Makoto

0

elementはリストの先頭です。 elementを変更し、2番目の項目を削除するとelementが最初のelementを指し、最初の要素が2番目の項目ではなく3番目の項目を指すように変更するコードを見てください。

+0

私はそれを得た。私はprevious.setNext文字列のコメントを外し、previousとcurrentを同じに設定します。それは今働く。とにかくありがとうlol – Tigh

+0

LinearNode をtempに変更しました。それはもっと意味があるように思えました。 – Tigh

関連する問題