データ構造 Part.0 「データ構造とは」

f:id:shogonir:20210611001250p:plain

 

はじめに

この記事では、データ構造の概要について説明いたします。
今後は色々なデータ構造について紹介していく予定です。

また、この記事の内容をまとめた動画をYoutubeに投稿しております。
よければそちらも確認してみてください。

youtu.be

 

目次

  1. 前提とする知識
  2. データ構造とは
  3. 学ぶメリット
  4. 紹介したいデータ構造
  5. さいごに

 

1. 前提とする知識

この記事を読むうえで、知っておくとより理解が深まる項目を挙げます。

ただ、以上の知識は無くても十分理解頂けるとおもいますが、
もし興味が沸いた方はオーダー記法シリーズも是非ご覧ください。

blog.shogonir.jp

 

2. データ構造とは

データの集まりを効率的に扱うため、コンピュータ上に格納するための形式のことです。
これから具体例として紹介する「リスト」と「連想配列」もデータ構造の一種です。

例えば「リスト」はデータ構造の一種で、同じ形式のデータを順番に格納することができます。
例えば2つのリストを用いることで、人の名前と身長を対応付けて管理することができます。

var nameList = ["John Smith", "Mary Jones"]  
var heightList = [175, 156]  

 

次に例に挙げるのは「連想配列」というデータ構造です。
連想配列」はキーとそれに対応するバリューを纏めて格納できます。
1つの連想配列を用いることで、人の名前と身長を対応付けて管理することができます。

var heightMap = { "John Smith": 175, "Mary Jones": 156 }  

 

人の名前と身長を対応付けて管理する方法を2つ紹介しましたが、
どちらが優れているかは状況によって異なるので注意が必要です。
このシリーズを読んでいただければ、状況によってデータ構造を使い分けられるようになります。

ここでは、なんとなくデータ構造がどういうものなのかが伝われば幸いです。

 

3. 学ぶメリット

適切なデータ構造を選択または設計できるようになると、次のようなメリットがあります。

  • プログラム(アルゴリズム)の効率(実行時間)が良くなることがある。

データ構造にはそれぞれ得意な(高速に処理できる)操作と、
不得意な(処理に時間がかかる)操作があります。
例えば「連結リスト」は検索が苦手で、「動的配列」は検索が得意という性質があります。

このようなデータ構造の性質を理解することは非常に重要です。
同じ目的を達成するプログラムでも、内部で使うデータ構造を変更するだけで
プログラムの効率が圧倒的に改善するような例もある。
(例:検索を頻繁に行う処理では、連結リストよりも動的配列のほうが効率が良い)

 

4. 今後紹介したいデータ構造

この記事ではデータ構造がどういったものか紹介してきました。
しかしどうしても抽象的な説明になってしまいます。

次回からは具体的にどのようなデータ構造があり、
どういった場面でそれを使うべきなのかを紹介していきたいと思います。

このシリーズで紹介したいデータ構造は今のところ以下の通りです。

 

5. 最後に

この記事ではデータ構造とは何かということを紹介してきました。
次回からは少しずつ具体的な話が増えてくるので、
理解もしやすく、どんどん面白くなっていくと思います。

もしデータ構造に興味が沸いたという方は是非「いいね!」などをお願いします。
また、コメントによる指摘や感想お待ちしております。

ご覧いただいてありがとうございました。