Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

Javascriptを使用してリンクリストから要素を削除します


リンクリストでは、要素の削除は非常に簡単です。削除したいノードを取り除く必要があります。つまり、その参照を失います。考慮する必要がある3つのケースがあります-

  • headから要素を削除する:この場合、head=head.nextを割り当てるだけです。このようにして、最初の要素の参照を失います。そして、頭が2番目の要素を指し始めます。
  • テールから要素を削除する:この場合、最後から2番目のノードのnode.nextをnullに割り当てるだけで、リストから最後の要素を削除できます。
  • 中間から要素を削除する:これはより注意が必要です。この場合、削除するノードの前にノードを作成し、削除するノードの後に​​あるノードを直接指すようにする必要があります。したがって、prevNode.next=node.nextがこれを実行します。

さて、これのイラストを見てみましょう-

Javascriptを使用してリンクリストから要素を削除します

それでは、これをどのように実装するかを見てみましょう-

remove(data, position = 0) {
   if (this.length === 0) {
      console.log("List is already empty");
      return;
   }
   this.length--;
   let currNode = this.head;
   // Condition 1
   if (position <= 0) {
      this.head = this.head.next;
    }
   // Condition 2
   else if (position >= this.length - 1) {
      while (currNode.next.next != null) {
         currNode = currNode.next;
      }
      currNode.next = null;
   }
   // Condition 3
   else {
      let iter = 0;
      while (iter < position) {
         currNode = currNode.next; iter++;
      }
      currNode.next = currNode.next.next;
   }
}

-

を使用してこれをテストできます

let list = new LinkedList();
list.insert(10);
list.insert(20);
list.insert(30);
list.remove(1);
list.display();
list.insert(15, 2);
list.remove();
list.display();

出力

これにより、出力が得られます-

20 ->
30 ->
30 ->
15 ->

  1. Javascriptでのリンクリスト表現

    上図のように、考慮すべき重要なポイントは次のとおりです。 LinkedListには、firstというリンク要素が含まれています。 各リンクには、データフィールドとnextと呼ばれるリンクフィールドがあります。 各リンクは、次のリンクを使用して次のリンクにリンクされます。 最後のリンクには、リストの終わりを示すためにnullとしてリンクが含まれています。

  2. Javascriptを使用して二重リンクリストから要素を削除する

    リンクリストでは、要素の削除は非常に簡単です。削除したいノードを取り除く必要があります。つまり、その参照を失います。考慮する必要がある3つのケースがあります- headから要素を削除する:この場合、head =head.nextを割り当てるだけで、次の要素から前のリンクを削除できます。このようにして、最初の要素の参照を失います。そして、頭が2番目の要素を指し始めます。 テールから要素を削除する:この場合、最後から2番目のノードのnode.nextをnullに割り当てるだけで、リストから最後の要素を削除できます。また、現在のノードを指すようにテールを更新します。 中間から要素を削除する:これ