配列とリンクリストの主な違いは、配列はコンパイル時(配列を宣言する時)にメモリを確保するのに対し、リンクリストは実行時(リンクリストに要素を追加する時)にメモリを確保することです。
配列は、同じデータ型の要素群を含むデータ構造です。
配列はあらかじめ定義されている。
つまり、長さが固定されている。
一方、リンクリストは線形データ構造で、各要素を個別のオブジェクトと見なします。
動的な長さを持ちます。
そのため、実行時に長さを増減させることが可能です。
配列とは
配列は、サイズが固定されたデータ構造です。
同じ型の要素を格納することができます。
同じ型の要素が複数ある場合、それぞれを別の変数として格納することはできません。
この問題を解決するのが配列です。
これは、すべての要素を1つの要素として格納します。
例えば、double salary [10];は、salaryという配列を宣言し、10個のdouble値を格納することができます。
この配列のサイズは10です。
したがって、プログラマはこの配列に10個を超える要素を格納することはできません。
配列の最初の要素のインデックスは0です。
配列の要素が10個ある場合、最後の要素のインデックスは9です。
最下位のアドレスが最初の要素に対応し、最上位のアドレスが最後の要素に対応します。
さらに、要素の挿入、削除、変更、配列の走査、配列の結合などの操作を実行することが可能です。
リンクドリストとは
リンクリストは、一連のノードのグループを含む線形データ構造です。
各ノードは、それ自身のデータと他のノードのアドレスから構成されます。
次のノードのアドレスを格納することも、次のノードと前のノードの両方を格納することも可能です。
要素は互いにリンクされ、鎖のような構造を形成する。
リンクリストの主な利点は、動的であることです。
配列とは異なり、必要なメモリを最初にすべて割り当てる必要はない。
その代わり、リンクリストでは、必要なときにメモリを確保することができます。
一方、リンクリストは他のノードのアドレスを格納するため、より多くのメモリを必要とします。
また、リンクリストでは、ある要素に一度にランダムにアクセスすることはできません。
プログラマーは、特定の要素にアクセスするために、各ノードを順番に見ていかなければならない。
さらに、リンクリストでは逆方向の走査を行うことは困難です。
配列とリンクリストの違い
定義
配列は、それぞれが配列のインデックスによって識別される要素のコレクションから成るデータ構造であるのに対し、リンクリストは、メモリ内の位置によって順序が与えられないデータ要素の線形コレクションです。
したがって、これが配列とリンクリストの主な違いです。
エレメントにアクセスする
配列はランダムアクセスをサポートしています。
したがって、プログラマはインデックスを使用して配列内の要素に直接アクセスすることができます。
リンクリストはシーケンシャルアクセスに対応しています。
したがって、プログラマーは、必要な要素に到達するまで、各要素またはノードを順次通過する必要があります。
したがって、これが配列とリンクリストの重要な違いの1つです。
メモリロケーション
配列とリンクリストのもう一つの違いは、メモリ上の位置です。
配列の要素は、連続したメモリ位置に格納されます。
一方、リンクリストの要素は、メモリ上のどこにでも格納することができます。
連続したメモリ位置に要素を格納する必要はありません。
サイズ
さらに、プログラマは配列の宣言時にそのサイズを指定する必要があります。
しかし,リンクリストの場合は,サイズを指定する必要はない.ノードを増やせば、実行時に大きくすることができる。
メモリ割り当て
さらに、配列では、コンパイル時にメモリ割り当てが行われます。
これは静的なメモリ割り当てです。
しかし、リンクリストでは、実行時にメモリが割り当てられる。
これは動的なメモリ割り当てです。
これが配列とリンクリストのもう一つの違いです。
要素間の依存関係
また、配列の要素は互いに独立していますが、リンクリストの要素やノードは次のノード、または次のノードと前のノードの両方を指しています。
結論
ArrayとLinked Listはどちらもデータを線形に格納するのに役立ちます。
配列とリンクリストの主な違いは、配列はコンパイル時(配列を宣言する時)にメモリを確保し、リンクリストは実行時(リンクリストに要素を追加する時)にメモリを確保することです。