Javascriptを使用した二重リンクリストの作成
先頭と末尾をnullに初期化するコンストラクターを使用して、単純なクラスを定義することから始めましょう。また、リンクリスト内の各ノードを表すDoublyLinkedListクラスのプロトタイプに別の構造を定義します。
例
class LinkedList {
constructor() {
this.head = null;
this.tail = null;
this.length = 0;
}
}
LinkedList.prototype.Node = class {
constructor(data) {
this.data = data;
this.next = null;
this.prev = null;
}
}; - currElem =currElem.nextを使用してリストを繰り返し、currElemがnullにならないようにします。つまり、最後に到達しません。
これが同じイラストです-
では、これをどのように実装するかを見てみましょう-
例
display() {
let currNode = this.head;
while (currNode != null) {
console.log(currNode.data + " -> ");
currNode = currNode.next;
}
} -
Javascriptを使用して二重リンクリストから要素を削除する
リンクリストでは、要素の削除は非常に簡単です。削除したいノードを取り除く必要があります。つまり、その参照を失います。考慮する必要がある3つのケースがあります- headから要素を削除する:この場合、head =head.nextを割り当てるだけで、次の要素から前のリンクを削除できます。このようにして、最初の要素の参照を失います。そして、頭が2番目の要素を指し始めます。 テールから要素を削除する:この場合、最後から2番目のノードのnode.nextをnullに割り当てるだけで、リストから最後の要素を削除できます。また、現在のノードを指すようにテールを更新します。 中間から要素を削除する:これ
-
C++で二重にリンクされたリストを使用した優先キュー
データと優先度は整数値として与えられ、タスクは与えられた優先度に従って二重にリンクされたリストを作成し、結果を表示することです。 キューはFIFOデータ構造であり、最初に挿入された要素が最初に削除されます。優先度付きキューは、優先度に応じて要素を挿入または削除できるキューの一種です。キュー、スタック、またはリンクリストのデータ構造を使用して実装できます。優先キューは、次のルールに従って実装されます- 優先度が最も高いデータまたは要素は、優先度が最も低いデータまたは要素の前に実行されます。 2つの要素の優先度が、順番に実行される要素と同じである場合、それらはリストに追加されます。 優先