ハジカラ 〜はじめからでも、プログラミング勉強〜

入門向けに、IT関連(javaやKotlin)をコツコツ書いたり検証したりします。

【IT入門】データ構造のアルゴリズム

calendar

reload

【IT入門】データ構造のアルゴリズム

こんにちは😀

Kotlin入門でも触れましたが、処理を行う上でデータを保持するための配列やリストといった入れ物があります。
今回、その変数の入れ物の理解を深める機会があったのでまとめてみます。

配列に変数を入れるといってもメモリ上どのように配置するか。
そのデータを配置する方法をデータ構造と呼びます。

スポンサーリンク

配列のデータ構造

メモリ上の連続した領域にデータを並べて管理するのが配列になります。
入れ物の番号を添字で指定できます。
この番号を使うことで、各入れ物のデータに直接アクセスすることができます。

ただし、配列の作成時点で固定サイズの領域を確保するため、データの挿入や削除には適していません。

リストのデータ構造

リストは、データとデータを数珠つなぎにして管理しています。
リストの扱うデータには、ポインタと呼ばれる番号がセットになっています。メモリ上の位置を表す番号で、これは次のデータのメモリの場所を指し示しています。

配列のように固定の領域と添字で構成されていないので、リストの場合ポインタを書き換えればデータをつなぎ換えられます。
あるポインタを書き換えて飛ばすようにすればリストの削除になり、新しいポインタに書き換えればリストを挿入することができます。

リストには、ポインタの持ち方によって、以下の3つの種類に分けられます。

・単方向リスト・・・次のデータへのポインタをもつ基本的な構造
・双方向リスト・・・次のデータへのポインタと前のデータへのポインタをもつ
・循環リスト・・・次のデータへのポインタをもち、最後尾のデータは先頭データのポインタをもつ

キューのデータ構造

待ち行列と呼ばれ、最初に格納したデータから順に処理を行う先入れ先出し方式のデータ構造になります。
①データA→②データB→③データCの順でキューにデータを入れた場合、取り出す順も①データA→②データB→③データCとなります。

スタックのデータ構造

スタックはキューの逆になり、最後に入れたデータから順に取り出して処理を行います。
後入れ先出し方式のデータ構造になります。

①データA→②データB→③データCの順でスタックに入れた場合、取り出しは①データC→②データB→③データAとなります。

今回の一言・・・

今まで仕事等で、配列・リスト・キューを使用して開発したことはありますが、データの持ち方や使用に関しての理解はあまり深くはありませんでした。
開発する上では知らなくても困りはしないかもしれませんが、より効率の良い要件やスケジュールを出す上では理解を深めた方が良いと感じました。

今回はここまで🤚

では、また次回。

IT入門一覧はこちら】

※今回の内容は、「キタミ式イラストIT塾 応用情報技術者」(株式会社技術評論社)を参考としました。

この記事をシェアする

コメント

コメントはありません。

down コメントを残す