配列とリンクリストの違いは何ですか

目次:

Anonim

NS 主な違い 配列とリンクリストの間は 配列は、配列を宣言するときであるコンパイル時にメモリを割り当てますが、リンクリストは、リンクリストに要素を追加するときである実行時にメモリを割り当てます。

配列は、同じデータ型の要素のグループを含むデータ構造です。配列は事前定義されています。つまり、固定長です。一方、リンクリストは、各要素を個別のオブジェクトと見なす線形データ構造です。動的な長さです。したがって、実行時に増減することができます。

配列、リンクリスト

配列とは

配列は、固定サイズのデータ​​構造です。同じタイプの要素を格納できます。同じタイプの要素が複数ある場合、それぞれを個別の変数として格納することはできません。配列は、この問題の代替手段を提供します。すべての要素を単一の要素として格納します。たとえば、2倍の給与[10]; 10個のdouble値を格納できるsalaryという配列を宣言します。この配列サイズは10です。したがって、プログラマーはこの配列に10個を超える要素を格納できません。

1のインデックスNS 配列内の要素は0です。配列内に10個の要素がある場合、最後の要素のインデックスは9です。配列内のすべての要素は連続したメモリ位置にあります。最小アドレスは最初の要素に対応し、最大アドレスは最後の要素に対応します。さらに、要素の挿入、削除、変更、配列のトラバース、配列のマージなどの操作を実行できます。

リンクリストとは

リンクリストは、シーケンス内のノードのグループを含む線形データ構造です。各ノードは、独自のデータと別のノードのアドレスで構成されます。次のノード、または次のノードと前のノードの両方のアドレスを格納できます。要素は互いにリンクされ、チェーンのような構造を形成します。リンクリストの主な利点は、動的であるということです。アレイとは異なり、最初に必要なすべてのメモリを割り当てる必要はありません。代わりに、リンクリストを使用すると、必要に応じてメモリを割り当てることができます。

一方、リンクリストは他のノードのアドレスを格納するため、より多くのメモリを必要とします。リンクリストでは、要素に一度にランダムにアクセスすることはできません。プログラマーは、特定の要素にアクセスするために、各ノードを順番に通過する必要があります。さらに、リンクリストで逆トラバースを実行することは困難です。

配列とリンクリストの違い

意味

配列は、それぞれが配列インデックスによって識別される要素のコレクションで構成されるデータ構造ですが、リンクリストは、メモリ内の場所によって順序が指定されていないデータ要素の線形コレクションです。したがって、これが配列とリンクリストの主な違いです。

要素へのアクセス

配列はランダムアクセスをサポートします。したがって、プログラマーはインデックスを使用して配列内の要素に直接アクセスできます。リンクリストは順次アクセスをサポートします。したがって、プログラマーは、必要な要素に到達するまで、各要素またはノードを順番に調べる必要があります。したがって、これは配列とリンクリストの重要な違いの1つです。

メモリの場所

メモリの場所は、配列とリンクリストのもう1つの違いです。配列内の要素は、連続したメモリ位置に格納されます。一方、リンクリストの要素はメモリ内のどこにでも保存できます。連続したメモリ位置に要素を格納する必要はありません。

サイズ

メモリ割り当て

さらに、配列では、メモリ割り当てはコンパイル時に行われます。これは静的メモリ割り当てです。ただし、リンクリストでは、メモリの割り当ては実行時に行われます。これは動的メモリ割り当てです。したがって、これは配列とリンクリストのもう1つの違いです。

要素間の依存関係

また、配列内の要素は互いに独立していますが、リンクリスト内の要素またはノードは次のノードまたは次のノードと前のノードの両方を指します。

結論

配列とリンクリストはどちらも、データを線形に格納するのに役立ちます。配列とリンクリストの主な違いは、配列はコンパイル時(配列を宣言するとき)にメモリを割り当てるのに対し、リンクリストは実行時にメモリを割り当てる(リンクリストに要素を追加するとき)ことです。

リファレンス:

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

画像提供:

1.「Array2」作成者機械可読な作成者は提供されていません。 Jarkko Piiroinenが想定(著作権の主張に基づく)。 –機械可読ソースは提供されていません。 Commons Wikimedia 2を介して(著作権の主張に基づいて)(パブリックドメイン)想定された自分の作品。

配列とリンクリストの違いは何ですか