Javascriptを使用してリンクリストに要素を追加する
リンクリストの特定の位置にデータを挿入する関数insert(data、position)を作成する必要があります。次の手順を実行します-
- 新しいノードを作成する
- リストが空かどうかを確認します。その後、ノードをヘッドに追加して戻ります。
- そうでない場合は、currElemを使用して挿入する位置まで繰り返します。 currElemをcurrElem.nextと等しくすることにより、リンクリストを繰り返します。
- 次に、ノードがリスト内の次のノードを指すようにします。これは、リストの残りの部分を追跡するためです。
- 最後に、currElemからリストの残りの部分へのリンクを解除し、作成したノードを指すようにします。これで、ノードはリスト内の指定された位置にあります。
これが同じイラストです-
それでは、これをどのように実装するかを見てみましょう-
例
insert(data, position = this.length) { let node = new this.Node(data); if (this.head === null) { this.head = node; this.length++; return this.head; } let iter = 1; let currNode = this.head; while (currNode.next != null && iter < position) { currNode = currNode.next; iter++; } node.next = currNode.next; currNode.next = node; this.length++; return node; }
最後の要素として位置を指定していることに注意してください。これは、位置を指定しない場合、デフォルトで最後に挿入されるためです。
-
を使用してこれをテストできます例
let list = new LinkedList(); list.insert(10); list.insert(20); list.insert(30); list.insert(15, 2); list.display();>
出力
これにより、出力が得られます-
10 -> 30 -> 15 -> 20 ->
ご覧のとおり、すべての要素が意図した順序になっています。 2の後の位置に15を挿入してみました。
-
Javascriptを使用して二重リンクリストから要素を削除する
リンクリストでは、要素の削除は非常に簡単です。削除したいノードを取り除く必要があります。つまり、その参照を失います。考慮する必要がある3つのケースがあります- headから要素を削除する:この場合、head =head.nextを割り当てるだけで、次の要素から前のリンクを削除できます。このようにして、最初の要素の参照を失います。そして、頭が2番目の要素を指し始めます。 テールから要素を削除する:この場合、最後から2番目のノードのnode.nextをnullに割り当てるだけで、リストから最後の要素を削除できます。また、現在のノードを指すようにテールを更新します。 中間から要素を削除する:これ
-
C言語を使用したリンクリストへの要素の挿入について説明する
リンクリストは動的メモリ割り当てを使用します。つまり、それに応じて拡大および縮小します。それらはノードのコレクションとして定義されます。ここで、ノードにはデータとリンクの2つの部分があります。データ、リンク、およびリンクリストの表現を以下に示します- リンクリストの操作 C言語のリンクリストには、次の3種類の操作があります- 挿入 削除 トラバース 挿入 ノード2とノード3の間にノード5を挿入する例を考えてみましょう。 ここで、最初にノード5を挿入します。 最後にノード5を挿入します。 最後にノード5を挿入します。 注: ノードに名前が付けられ