基本情報処理技術者試験に合格しよう

Webデザインの勉強の傍ら独習で基本情報技術者試験合格を目指す

キューとスタック

キュー

キューはデータを格納した際に格納したままの順序で取り出すことの出来るデータ構造のことを言う。このような先入れ先出しの構造を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つの添え字が必要となります。

 

アルゴリズム

アルゴリズムとは問題を解くための手順を定式化した形で表現したものを言う。人間より速く大量に正しい結果を導くことができるのがコンピュータの強みであるが、そのためにはプログラムは正しく効率的なアルゴリズムに基づくことが必要である。

変数と宣言

アルゴリズムでは変数と呼ばれるデータを格納する箱を使用します。変数に任意の名前を付け格納するデータの種類により、数値や文字列、論理値などのデータの型を宣言します。そして宣言した変数に値を代入(格納)します。

アルゴリズムの表現

流れ図

擬似言語

 

半加算器と全加算器

基本的な論理回路の組合せにより加算を実現すること回路を作ることが出来ます。2進数の加算を行う回路を加算器と言い、加算器には半加算器と全加算器があります。

半加算器

半加算器は「論理積」と「排他的論理和」の組合せによって実現され、下位桁からの桁上がりを考慮せず上位桁への桁上がりのみを考慮するために最下位桁で使われる。

半加算器は最下位桁で用いられる

全加算器

全加算器は「半加算器」と「論理和」の組合せによって実現され、下位桁からの桁上がりと上位桁への桁上がり両方を考慮するため最下位以外の桁で使われる。

全加算器は最下位桁以外で用いられる