シングルリンクリストとダブルリンクリストの違いは何ですか

目次:

Anonim

NS 主な違い シングルリンクリストとダブルリンクリストの間は シングルリンクリストのノードは次のノードのアドレスを格納し、ダブルリンクリストのノードは次のノードと前のノードのアドレスを格納します。

配列は、同じデータ型の要素のグループを格納するデータ構造です。配列の主な欠点の1つは、配列が事前定義されているか、長さが固定されていることです。リンクリストは、データを動的に保存できるため、この問題の解決策を提供します。したがって、実行時に要素を追加することが可能です。つまり、リンクリストを使用すると、必要に応じて要素にメモリを割り当てることができます。リンクリストにはさまざまな種類があり、シングルリンクリストとダブルリンクリストの2つがあります。簡単に言うと、単一のリンクリストでは一方向に移動でき、二重のリンクリストでは要素を介して両方向に移動できます。

シングルリンクリスト、ダブルリンクリスト

シングルリンクリストとは

リンクリストは、シーケンス内のノードのグループで構成される線形データ構造です。ノードまたは要素は、データと別のノードのアドレスで構成されます。単一のリンクリストは、リンクリストの一種です。

単一のリンクリストには、シーケンス内の次のノードのデータとアドレスが格納されます。ノードは次のノードのアドレスを格納するため、ノードは相互に参照しています。したがって、チェーンに似た構造を形成します。単一のリンクリスト内の要素の挿入、削除、トラバースなどの操作を実行できます。

ダブルリンクリストとは

シングルリンクリストと同様に、ダブルリンクリストもリンクリストの一種です。とも呼ばれます 二重にリンクされたリスト。データと2つのアドレスを保存します。これらのアドレスは、次のノードのアドレスと前のノードのアドレスです。 2つの参照があるため、二重リンクリスト内の要素を前後に移動することができます。さらに、プログラマーは、二重リンクリスト内の要素の挿入や削除などの操作を実行できます。

これらの2つのタイプに加えて、循環リンクリストとして別のリンクリストがあります。この種のリストでは、最後のノードが最初のノードのアドレスを格納します。したがって、それは環状鎖に似た構造を形成します。

シングルリンクリストとダブルリンクリストの違い

意味

単一のリンクリストは、データフィールドと、ノードの行の次のノードを指す次のフィールドを持つノードを含むリンクリストです。対照的に、二重リンクリストは、データフィールド、次のノードを指す次のフィールド、およびシーケンス内の前のノードを指す前のフィールドを含むリンクリストです。したがって、これがシングルリンクリストとダブルリンクリストの主な違いです。

方向

メモリ要件

メモリ要件は、シングルリンクリストとダブルリンクリストのもう1つの違いです。単一のリンクリストは1つのアドレスのみを格納するため、必要なメモリは少なくなりますが、二重のリンクリストは2つのアドレスを格納するため、より多くのメモリが必要になります。

挿入と削除

単一のリンクリスト内の既知の位置での挿入と削除の複雑さはO(n)です。二重リンクリストの既知の位置での挿入と削除の複雑さはO(1)です。したがって、これはシングルリンクリストとダブルリンクリストのもう1つの違いです。

結論

リンクリストは、シーケンス内のノードのグループで構成される線形データ構造です。実行時に、要素を連続していないメモリ位置に格納します。シングルリンクリストとダブルリンクリストは、2種類のリンクリストです。シングルリンクリストとダブルリンクリストの主な違いは、シングルリンクリストのノードは次のノードのアドレスを格納し、ダブルリンクリストのノードは次のノードと前のノードのアドレスを格納することです。

リファレンス:

1.「リンクリストの紹介」。コンピュータネットワークにおけるネットワークトポロジの種類| Studytonight、こちらから入手できます。

画像提供:

1.「CPT-LinkedLists-addingnode」Singly_linked_list_insert_after.png:Derrick Coetzeederivative work:Pluke(talk)– Singly_linked_list_insert_after.png(Public Domain)via CommonsWikimedia2。 Lasindiによる「二重リンクリスト」– Commons Wikimediaによる自作(パブリックドメイン)

シングルリンクリストとダブルリンクリストの違いは何ですか