問題一覧
1
リストとは何か
データを一直線に並べたデータ構造である
2
リストのメリットを2つ答えよ
・ポインタを用いるため、連続した領域にデータを格納する必要がなく、メモリの使用効率が高い。 ・データの追加、削除はポインタの差し替えのみで実現できるため、時間計算量が小さい
3
リストのデメリットを1つ挙げよ
・データへアクセスする際には、ポインタをたどらなくてはならないため、時間計算量が大きい
4
リスト構造の例を二つ挙げよ
・循環リスト ・双方向リスト
5
配列とは何か
データを1つに並べたデータ構造のことである。
6
配列のメリットを1つ挙げよ
・データが連続して格納されるため、データへのアクセスが簡単である。
7
配列のデメリットを2つ挙げよ
・データを連続して格納する必要があるため、メモリの使用効率が悪い ・データの追加や削除をする場合、その分だけデータをずらさなければならないため、時間計算量が大きくなってしまう。
8
スタックとは何か
データを格納していき、最後に格納したデータから処理を行うものである
9
スタックの特徴を2つ答えよ
・プッシュ:スタックにデータを追加 ・ポップ:スタックからデータを取り出す
10
スタックは何に使われているか
・Webブラウザの戻るボタンなど
11
キューとは何か
データを格納していき、最初に格納したデータから処理を行うものである。
12
キューの特徴を2つ挙げよ
・エンキュー:キューにデータを追加 ・デキュー:キューからデータを取り出す
13
キューはどのような場面で使われるか
・プリンターなどに用いられる
14
ハッシュテーブルとは何か
「キー」と「値」の組み合わせを1つのかたまりとして管理するデータ構造のことである
15
ハッシュテーブルのメリットを2つ挙げよ
・ハッシュ関数を用いることでデータの操作を効率的に行うことが可能である。 ・データが衝突した場合でもチェイン法や開番地法を利用することで柔軟に対応できる。
16
ハッシュテーブルのデメリットを2つ答えよ
・ハッシュテーブルで用意した配列が大きすぎる場合、格納されない配列が多くなってしまい、メモリの無駄遣いになってしまう ・ハッシュ関数に偏りがあると、データの衝突が多くなってしまう。
17
ヒープとは何か
プライオリティーキューの1つで、木構造を用いて実装するデータ構造である。
18
ヒープの特徴を2つ答えよ
・子は親より常に大きいか等しいという条件を満たす。 ・根には最小値か最大値が格納されているため、ヒープソートを実装する際に用いる
19
二分探索木とは何か
親の値に比べて、左の子の値が小さく、右の子の値が大きいという制約を持つ2分木のことである
20
二分探索木の特徴を3つ答えよ
・データを削除する際は左部分木の最大値か右部分木の最小値を入れ替える。 ・データの追加や削除を行う場合は木の高さの分だけ比較することになるため、時間計算量はO(log n)となる ・木が偏ってしまった場合は、一直線になってしまい、O(n)になってしまう。
21
他の2分木を2つ答えよ
・平行二分木 ・B木
22
二分木とは何か
各ノードは最大で二つの子ノードを持つことと、各ノードは1つの親ノードを持つことができるという特性を持った木構造のデータ構造のことである。
23
二分木の特徴を2つ答えよ
・挿入、削除、探索について、どの操作を行なっても平均時間計算量はO(log n) ・時間計算量がO(log n)と高速であるため、ソートアルゴリズムや検索アルゴリズムなど、広い分野で利用されている。