プログラミング

【データ構造 #1】データ構造とは? ~駆け出しエンジニアのプログラミング講座~

皆さんこんにちはこんばんは、まずここブログを運営してます「よーす」です。

この記事はプログラミング初心者の方に向けた内容となっておりますが、経験者の方もたまに基本を振りかえると新しい発見があるかもしれないのでぜひ最後まで読んでみてください。

第1回目の今回は、「データ構造とは?」というところから勉強して行きましょう!

なぜデータ構造を勉強する必要があるのか?

プログラムを作成していると、絶対にデータというものを扱います。データの型は、用途によって違いますが文字列であったり、数値であったりします。

そのデータの持ち方のことを、「データ構造」と呼びます。

 

この当たり前に使うデータをプログラムの中でどのようにして持つかによって、のちのちにプログラムがスムーズに開発できるかどうか決まってきます。

 

例えば、お客様からもらった顧客データがあり、保管場所はデータベースに入っていると仮定します。

そのデータをSQL文で呼び、プログラムの内部で使おうとしたときに一体どうやることがベストなのでしょうか?

まさか使うごとにSQLを呼ぶわけにはいきませんよね。呼ぶ回数が少ないのであればいいかもしれませんが、毎回読んでいたらデータベースにも負荷がかかるし処理に時間がかかります。

なので、おそらく大抵の方が内部にてデータを保持すると思います。

 

その時にそのデータをどう持つかを考えるのが「データ構造」です。

 

今回は大きく分けて3つのデータ構造についてご紹介します。各データ構造ごとへの詳しい説明は、次回の記事にて説明して行くので今回はイメージだけ掴んで頂ければと思います。

 

特に有名な3つのデータ構造

データ構造

  1. 配列
  2. 連結リスト
  3. ハッシュテーブル

 

配列とは

配列とは要素を1列に並べただけのシンプルなデータ構造のことです。

 

a = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

 

このような数列のことを配列といいます。

配列は新しくデータを追加したり、削除したりすることが苦手です。

指定した場所の要素にアクセスすることを得意としています。

 

構造も簡単なので、まずはここをうまく使えるようになるといいでしょう。

 

連結リストとは

配列の苦手なデータの追加や削除を得意とするデータ構造です。

連結リストは、各要素をポインタと呼ばれる矢印によって1列につないだものです。

 

イメージはこんな感じ

nil→1→2→3→4→5→6→7→8→9→10→nil

 

nilはダミーのノード(結び目)を表しています。

これだけだと、どうやってこの連結リストを使うのかわからないと思うのでこれも別記事でまとめていきます。

なので今回の記事では、連結リストは配列の苦手なデータの追加や削除を得意、検索は苦手とだけ覚えておいてください。

 

ハッシュテーブル

配列の苦手なデータの追加や削除を得意とし、さらに連結リストの苦手とする検索も得意とするハッシュテーブル。

簡単に説明すると、データの入った箱に名前(key)を付けて、中身であるデータを管理します。

 

3年1組[佐藤、田中、戸谷、浜田]

3年2組[青山、渡辺]

3年3組[木村、中田、千歳]

3年4組[中村、中島、中本、中井]

イメージ

 

こんな感じでクラスごとに、中身である人物が分けられているイメージです。(※あくまでイメージです)

こちらも別記事にて詳しく解説していきたいと思います。

 

3つのデータ構造の得意不得意

今回紹介した3つのデータ構造の得意不得意が一目でわかるように、まとめました。

 

〇・・・得意

×・・・不得意

 

それぞれに得意不得意があるので、用途に合わせて使えるようになれば上級者です!

 

最後に

1つ1つが内容がそれなりに多いので1つずつ別記事でまとめることにしました。

早く内容を知りたい方や、もっと詳しく知りたい方は以下の本を参考にしてみてください。

 

最後まで読んで頂きありがとうございました。

  • この記事を書いた人
  • 最新記事

よーす

アメリカテキサスに留学&卒業後アメリカ現地(アリゾナ州)就職し、その後、9カ月かけて世界25カ国を旅してました。そんな経験を活かし、現在はC#を中心にソフトフェアの開発をしています。

-プログラミング

Translate »

Copyright © まずここまずここ , All Rights Reserved.