データ構造!リストと配列の違い!

 

こんにちは!

 

 

 

今回は、データ構造のお話(その2)です

 

"リスト"の説明をします!

 

 

 

 

 

配列とリストの違い

しっかりマスターして、

 

 

 

午後問題の問8を

 

解くための知識を

 

身につけましょう!

 

 

f:id:network-123:20180221210058j:plain

 

 

では前回の確認です。

 

 

 

配列は

 

同じ種類(型)のデータの集まり

 

でしたよね?

 

 

 

 

では、リストとは何でしょうか?

 

 

 

 

リストとは、

 

データとポインタの集まりです。

 

 

 

 

データは異なる種類でも大丈夫です。

 

 

ポインタとは、

データを格納した箱の

アドレス(メモリ上の住所)を格納する箱のこと。

 

 

f:id:network-123:20180221202318p:plain

 

 

 

次にリストの特徴を説明します!

 

 

 

リストは配列と違って添え字がないため、

データのアクセスに時間がかかります。

 

 

 

どういうことかというと、

 

 

例えば、

 

 

5番目のデータにアクセスしようとした場合、

 

 

配列の場合だと、

"[5]"のように直接アクセス出来るのに対し、

 

 

 

リストの場合だと、

先頭から順にポインタを

たどっていく必要があります。

 

 

 

 

時間かかりますよね?

 

f:id:network-123:20180221210044j:plain

 

しかし、リストにも利点があります!

 

 

新しく箱(要素)を追加しようとした場合、

 

 

最後のポインタに、

新しい箱のアドレスを格納するだけで済みます。

 

 

容易に箱の追加が可能なのです!

 

 

 

配列の場合はそうはいきません。

出来なくはないですが、めんどくさいです。

 

 

 

 

 

 

 

最後に、

 

 

リストは配列と違って

物理的に連続になっていません。

 

 

※ ”物理的に連続ではない” とは、

実際に連続して箱がメモリ上に確保されないこと

 

 

 

論理的に連続になっているだけです。

 

 

 

 

 

以上でリストの話は終わりです。

 

読んでいただいてありがとうございました。

 

次回もよろしくお願いします。