データを交換せずにリンク リスト内のノードを交換する JavaScript プログラムは、リンク リスト内のノードの順序の並べ替えを伴う Web 開発における一般的な問題です。リンクされたリストはノードで構成されるデータ構造であり、各ノードにはデータの一部とリスト内の次のノードへの参照が含まれます。
この記事では、JavaScript を使用してデータを交換せずにリンク リスト内のノードを交換するための完全なチュートリアルを学習します。したがって、最初に交換ノードを定義してから、チュートリアルを続けましょう。だから、学び続けてください!
リンクリスト内のノードを交換するということは、2 つのノードの位置を交換することを意味します。リンク リスト内のノードを交換するには、さまざまな方法があります。 1 つのアプローチはノード間でデータを交換することですが、これは大量のデータを扱う場合には非効率となる可能性があります。別のアプローチは、ノードへのポインタを交換することです。データをコピーする必要がないため、これはより効率的です。
例を通してスイッチング ノードを理解しましょう
###例###1 -> 2 -> 3 -> 4 -> 5
2 番目と 4 番目のノードを交換して次を取得します。
1 -> 4 -> 3 -> 2 -> 5
ノード内でデータを交換せずにこれを実現するには、ノード間のリンクを変更する必要があります。結果として得られるリンク リストには、元のリンク リストと同じデータが含まれますが、ノードの順序が変更されています。
したがって、最初に交換する 2 つのノード (ノード 2 とノード 4) を特定します。また、リスト内のこれらのノードの前後のノードを追跡する必要もあります。
この例では、ノード 2 の前後のノードはそれぞれ 1 と 3 です。ノード 4 の前後のノードはそれぞれ 3 と 5 です。
次に、ノード間のリンクを更新する必要があります。まず、ノード 2 の前のノードの次のポインタをノード 4 に設定します。次に、ノード 2 の次のポインタをノード 5 に設定します (ノード 4 がノード 2 の後ろにあるため)。最後に、ノード 4 の次のポインタをノード 3 に設定します (ノード 2 がノード 4 の後ろにあるため)。
生成されるリンクリストは次のとおりです -
1 -> 4 -> 3 -> 2 -> 5
注- 各ノードのデータは変更されず、ノードの順序が変更されるだけです。 次に、データを交換せずにリンク リスト内のノードを交換するために使用するアルゴリズムを見てみましょう。
###アルゴリズム### STEP1最初のステップは、交換する必要がある 2 つのノードを特定することです。ノード A とノード B を交換するとします。
ステップ 2: 交換する 2 つのノードのうち、前のノードを見つけます
リンクされたリストでノード A と B の前のノードを見つける必要があります。これらのノードをそれぞれ PrevA および PrevB と呼びます。
ステップ 3: 前のノードの次のポインターを別のノードを指すように更新します
次に、PrevA と PrevB の次のポインターを更新して、正しいノードを指すようにする必要があります。これには、PrevA の next ポインタをノード B を指すように更新し、PrevB の next ポインタをノード A を指すように更新することが含まれます。
ステップ 4: 交換するノードの次のポインターを更新して、正しいノードを指すようにします。
次に、ノード A と B の次のポインターを更新して、正しいノードを指すようにする必要があります。これには、ノード B の次のノードを指すようにノード A の次ポインタを更新し、ノード A の次のノードを指すようにノード B の次ポインタを更新することが含まれます。
ステップ 5: 交換する必要がある他のノードに対して上記のステップを繰り返します。
3 つ以上のノードを交換する必要がある場合は、交換する必要があるノードのペアごとに上記の手順を繰り返します。これらの手順を完了すると、リンク リスト内のノードが交換されますが、それらのデータは交換されません。 JavaScript を使用して実装する例を使用して、上記のアルゴリズムを理解しましょう。 ###例###
このプログラムでは、まずリンクリストのノードを作成する「Node」クラスを定義し、次にリンクリストを作成・操作する「LinkedList」クラスを定義します。 「LinkedList」クラスの「swapNodes」関数は、前述のスワップ アルゴリズムを実装します。リーリー ###結論は###
このチュートリアルでは、データを交換せずにリンク リスト内のノードを正常に交換する、このアルゴリズムを実装する JavaScript プログラムを示します。これが読者のお役に立てば幸いです。楽しく学習してください!以上がデータを交換せずにリンク リスト内のノードを交換する JavaScript プログラムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。