Javascript での LinkedList の実装

王林
リリース: 2023-08-24 09:21:05
転載
1047 人が閲覧しました

Javascript 中 LinkedList 的实现

リンク リストは、要素のシーケンスで構成されるデータ構造であり、各要素にはシーケンス内の次の要素への参照 (または「リンク」) が含まれています。最初の要素はヘッドと呼ばれ、最後の要素はテールと呼ばれます。

リンクリストには、他のデータ構造と比較して多くの利点があります。次に、JavaScript を使用してリンク リストを実装する方法を見てみましょう。

Node クラスと LinkedList クラスを定義する

これは基本的に、JavaScript でリンク リストを実装するための前提条件です。このステップでは、ノード用とリンク リスト用の 2 つのクラスを作成する必要があります。

Node クラスは、リンク リスト内の単一のノードを表します。これには、data と next という 2 つのプロパティがあります。 data 属性はノードの実際のデータを保存するために使用され、next 属性はリスト内の次のノードへの参照です。 Node クラスは、新しいノードの作成時にデータと next プロパティを初期化するコンストラクターで構成されます。

リーリー

LinkedList クラスは、リンクされたリスト自体を表現します。これには、リストの最初のノードを参照する head 属性があります。 LinkedList クラスには、新しい LinkedList を作成するときに head プロパティを初期化するコンストラクターもあります。

リーリー

LinkedList クラスには、リスト内のノードの挿入、削除、検索を可能にするメソッドが含まれていると同時に、リストの印刷、要素のカウント、リストの反転などの他の操作も可能です。

リンクリストを印刷

リンク リストを走査して各ノードのデータを印刷することにより、リンク リストの要素を印刷できます。

リーリー

リンクリストにノードを追加

リンク リストにデータを追加するには、新しいノードを挿入する必要がある場所に応じて、次のように複数の方法があります。 -

リンクされたリストの先頭にノードを追加します

リンク リストの先頭にノード/要素を追加するには、データを使用して新しいノードを作成したら、その次のプロパティをリンク リストの現在の先頭に設定するだけです。その後、リンクされたリストの先頭を新しいノードに更新できます。これはリンク リストの先頭挿入とも呼ばれ、最も基本的なタイプのデータ追加です。これは、以下に定義されている add 関数を呼び出すだけで実行できます。

リーリー

リンクされたリストの末尾にノードを追加します

リンク リストの最後にノード/要素を追加するには、リンク リストを走査して最後のノードを見つける必要があります。その後、データを使用して新しいノードを作成し、最後のノードの次のプロパティを新しいノードに設定します。これはリンク リストの末尾挿入とも呼ばれ、データ追加の 2 番目に基本的なタイプです。これは、以下で定義されている addToTail 関数を呼び出すだけで実行できます。

リーリー

特定の場所にノードを追加する

リンク リストの特定の位置にノード/要素を追加するには、リンク リストをトラバースして挿入ポイントより前の位置にあるノードを見つけ、データを使用して新しいノードを作成し、そのノードの次の属性を設定します。新しいノードをその位置の現在のノードに追加し、以前のノードを置き換えます。 ノードの次のプロパティが新しいノードに設定されます。

リーリー

例 (リンクリストにノードを追加)

次の例では、先頭、末尾、および特定の位置にノードを追加します。

リーリー

出力

class Node {
   constructor(data) {
      this.data = data;
      this.next = null;
   }
}
ログイン後にコピー

ノードの削除

データは、ご要望に応じてさまざまな方法で削除することもできます。

特定のノードを削除する

リンク リストから特定のノードを削除するには、リンク リストを走査して、削除するノードの前にノードを見つけ、その次のプロパティを更新して削除するノードをスキップし、次のノードへの参照を更新する必要があります。ノード。これにより、値に基づいてノードが削除されます。

リーリー

特定の場所にあるノードを削除する

リンク リスト内の特定の位置にあるノードを削除するには、リンク リストを走査して、削除するノードの前にノードを見つけ、その次のプロパティを更新して削除するノードをスキップし、その後、次のノードへの参照。これは基本的に、インデックス値に基づいてノードを削除します。

リーリー

例 (線形リストからノードを削除)

次の例では、特定のノードと特定の場所にあるノードの削除を実装します。

リーリー ###出力### リーリー ###結論は###

JavaScript でリンク リストを実装するには、リスト内の各ノードを表す Node クラスとリスト自体を表す LinkedList クラスを作成し、データの追加と削除、データの印刷などの操作を実行するメソッドを LinkedList クラスに追加する必要があります。リスト。エッジケースも考慮し、実装時にそれに応じて処理することが重要です。ユースケースに応じて、LinkedList にデータを追加または削除するには複数の方法があります。

以上がJavascript での LinkedList の実装の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!