キューとスタック
キュー
キューはデータを格納した際に格納したままの順序で取り出すことの出来るデータ構造のことを言う。このような先入れ先出しの構造をFIFO(First-In First-out)と呼ぶ。
またデータをキューに格納することをエンキュー(enqueue)、データをキューから取り出すことをデキュー(dequeue)という。
キューは、先入れ先出し(FIFO)のデータ構造
スタック
スタックは、キューとは反対にデータを格納した順序と逆の順序で取り出すことの出来るデータ構造のことを言う。
またデータをスタックに格納することをプッシュ(push)、データをスタックから取り出すことをポップ(pop)という。
スタックは、後入れ先出し(LIFO)のデータ構造
連結リスト
連結リストは最も基本的なデータ構造の1つでありデータ部とポインタ部で構成されます。ポインタ部には連結リストの種類により、次のデータや前のデータの格納場所が入っている為、それをたどることによってデータを取り出すことが出来ます。
連結リストの種類
片(単)方向リスト
最も単純な連結リストであり、データ毎に1つのをポインタを持っている。このポインタはリスト上の次のデータを指し、リストの最後尾ならNull値を格納するか、空のリストを指す。
双方向リスト
データ毎に2つのリンクがあり1つが次のデータ、もう1つが後ろのデータを指す。リストの先頭のデータには後ろのデータがないので、後方ポインタにはNull値を格納するか、空のリストを指す。リストの最後尾のデータには次のデータがないので、前方ポインタにはNull値を格納するか、空のリストを指す。
環状リスト
先頭と最後尾のデータを相互に連結する。循環リストには片方向のものも双方向のものもある。循環リストを辿る場合は任意のデータから出発して、好きな方向にたどっていき、最初のデータに戻ってくるまで続ける。つまり、循環リストは先頭や最後尾といったものが存在しないリストと考えることもできる。
配列
配列とは同じ型のデータを連続的に並べたデータ構造です。各データをその配列の要素といい、それらは添字(インデックス)で識別されます。
1次元配列
要素(1) | 要素(2) | 要素(3) | 要素(4) | 要素(5) |
2次元配列
要素(1,1) | 要素(1,2) | 要素(1,3) | 要素(1,4) | 要素(1,5) |
要素(2,1) | 要素(2,2) | 要素(2,3) | 要素(2,4) | 要素(2,5) |
2次元配列は行と列を区別する2つの添え字が必要となります。
アルゴリズム
アルゴリズムとは問題を解くための手順を定式化した形で表現したものを言う。人間より速く大量に正しい結果を導くことができるのがコンピュータの強みであるが、そのためにはプログラムは正しく効率的なアルゴリズムに基づくことが必要である。
変数と宣言
アルゴリズムでは変数と呼ばれるデータを格納する箱を使用します。変数(箱)に任意の名前を付け格納するデータの種類により、数値や文字列、論理値などのデータの型を宣言します。そして宣言した変数(箱)に値を代入(格納)します。
アルゴリズムの表現
流れ図
擬似言語