ねぎとろ放浪記

ねぎとろ放浪記

個人的備忘録です。勉強したことをまとめていきます。

データ構造について

圧倒的に情報系の知識が不足しているのでITパスポートと基本情報の取得を目指すことにしました。 勉強した内容をめもっておく。

配列

  • 同じ形式のデータが連続しているデータ構造。
  • 主記憶装置の連続した領域に格納される。
  • 配列名と何番目に存在しているデータなのかで指定する。
  • 途中に要素を挿入するには元の要素をずらすので、時間がかかる

リスト

  • いくつかのデータを線状につなげたデータ構造。
  • データがつながって記録されるのではなく、要素の格納場所が入ったポインタで、論理的につながっている。
  • よって、主記憶装置にとっちらかって保存される。
  • データの追加や変更を行う際はポインタ部分の情報を変える。
  • 特定のデータにアクセスするにはリストの先頭からたどる必要があり、時間がかかる。

f:id:neginegitoro:20201215162517j:plain
リストの構造

キュー

  • FIFO(First In First Out:先入れ先出し)のデータ構造。
  • 先に入ってきたデータを先に出すという考え方。
  • 新しい要素は末尾に追加され、先頭の要素から取り出されていく。
  • ロケット鉛筆みたいなイメージ。

スタック

  • LIFO(Last In First Out:後入れ先出し)のデータ構造。
  • 後に入ってきたデータを先に処理する。
  • スタックにデータを追加する操作をpush、とりだす操作をpopという。
  • プログラムからプログラムを呼び出すときに、制御情報(どこへ戻ればいいのか)を管理するために使うらしい。

  • データに階層関係があるときに利用されるデータ構造。
  • データに相当するものを節という。
  • データの関係で上にくるものを親、下に来るものを子という。
  • 一番上の階層を根、一番下の階層を葉という。