基本情報技術者(科目A)過去問集 - データ構造

令和7年6月修了試験 問5
葉以外の節点は全て二つの子をもち,根から葉までの深さが全て等しい木を考える。この木に関する記述のうち,適切なものはどれか。ここで,木の深さとは根から葉に至るまでの枝の個数を表す。また,節点には根及び葉も含まれる。
枝の個数がnならば,節点の個数もnである。
木の深さがnならば,葉の個数は2n-1である。
節点の個数がnならば,木の深さはlog2nである。
葉の個数がnならば,葉以外の節点の個数はn-1である。
答え
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › データ構造
同一問題 : 〔令6修6問5〕〔令5修6問5〕〔令2修1問7〕〔平21修6問5
令和7年1月修了試験 問5
配列と比較した場合の連結リストの特徴に関する記述として,適切なものはどれか。
要素を更新する場合,ポインタを順番にたどるだけなので,処理時間は短い。
要素を削除する場合,削除した要素から後ろにある全ての要素を前に移動するので,処理時間は長い。
要素を参照する場合,ランダムにアクセスできるので,処理時間は短い。
要素を挿入する場合,数個のポインタを書き換えるだけなので,処理時間は短い。
答え
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › データ構造
同一問題 : 〔令5修12問5〕〔平28修1問5〕〔平25修12問5〕〔平23修1問6〕〔平21春問6
令和6年12月修了試験 問5
十分な大きさの配列Aと初期値が0の変数pに対して,関数 f(x) と g() が次のとおり定義されている。配列Aと変数pは,関数 f(x) と g() だけでアクセスが可能である。これらの関数が操作するデータ構造はどれか。

function f(x) {
 p = p+1;
 A[p] = x;
 return None;
}
function g() {
 x=A[p];
 p = p-1;
 return x;
}
キュー
スタック
ハッシュ
ヒープ
答え
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › データ構造
同一問題 : 〔令3修12問7〕〔平29修12問6〕〔平28修6問6〕〔平26修7問5〕〔平24春問6
令和6年7月修了試験 問5
A,B,C,Dの順に到着するデータに対して,一つのスタックだけを用いて出力可能なデータ列はどれか。
A,D,B,C
B,D,A,C
C,B,D,A
D,C,A,B
答え
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › データ構造
同一問題 : 〔令3修6問7〕〔令1修12問7〕〔平29秋問5〕〔平28修7問5〕〔平26修6問5〕〔平23修6問6〕〔平22秋問5
令和6年1月修了試験 問5
スタック操作の特徴を表す用語はどれか。
FIFO
LIFO
LILO
LRU
答え
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › データ構造
同一問題 : 〔平25修6問6
令和5年7月修了試験 問5
空の状態のキュースタックの二つのデータ構造がある。次の手続を順に実行した場合,変数xに代入されるデータはどれか。ここで,手続で引用している関数は,次のとおりとする。

〔関数の定義〕
 push(y):データyをスタックに積む。
 pop():データスタックから取り出して,その値を返す。
 enq(y):データyをキューに挿入する。
 deq():データキューから取り出して,その値を返す。

〔手続〕
 push(a)
 push(b)
 eng(pop())
 enq(c)
 push(d)
 push(deq())
 x ← pop()
a
b
c
d
答え
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › データ構造
同一問題 : 〔令4修7問7〕〔令3修1問7〕〔平29修6問5〕〔平26春問7〕〔平22修1問5
令和5年公開問題 問2
双方向のポインタをもつリスト構造のデータを表に示す。この表において新たな社員Gを社員Aと社員Kの間に追加する。追加後の表のポインタ a~f の中で追加前と比べて値が変わるポインタだけを全て列記したものはどれか。


アドレス社員名ポインタポインタ
100社員A3000
200社員T0300
300社員K200100

追加後の表
アドレス社員名ポインタポインタ
100社員Aab
200社員Tcd
300社員Kef
400社員Gxy
a,b,e,f
a,e,f
a,f
b,e
答え
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › データ構造
同一問題 : 〔令4修7問8〕〔令1修12問8〕〔平28修7問6〕〔平27修1問5〕〔平24修12問5〕〔平22春問5
令和5年1月修了試験 問7
2分木を入力するためのテキスト表現を,次のように規定した。図のように節に番号をつけたとき,テキスト表現として適切なものはどれか。

テキスト表現
(1)(左部分木の節番号又はテキスト表現,節番号,右部分木の節番号又はテキスト表現)と表す。
(2)部分木が空のときはxを書く。

((1,2),3,(4,5,6))
((1,2,3),x,(4,5,6))
((1,2,x),3,(4,5,6))
((1,2,x),3,(6,5,4))
答え
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › データ構造
同一問題 : 〔平27修7問5〕〔平24修7問5〕〔平23修1問5
令和4年12月修了試験 問7
ノード1~5をもつグラフを隣接行列で表したもののうち,木となるものはどれか。ここで,隣接行列のi行j列目の成分は,ノードiとノードjを結ぶエッジがある場合は1,ない場合は0とする。
答え
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › データ構造
令和4年6月修了試験 問8
10進法で5桁の数 a1a2a3a4a5 を,ハッシュ法を用いて配列に格納したい。ハッシュ関数を mod(a1+a2+a3+a4+a5,13) とし,求めたハッシュ値に対応する位置の配列要素に格納する場合,54321 は配列のどの位置に入るか。ここで,mod(x,13) は,xを13で割った余りとする。

1
2
7
11
答え
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › データ構造
同一問題 : 〔令1秋問10〕〔平30修7問6〕〔平29修1問7〕〔平26修7問7〕〔平25春問7〕〔平22秋問7
令和4年1月修了試験 問7
リストを二つの1次元配列で実現する。配列要素 box[i] と next[i] の対がリストの一つの要素に対応し,box[i] に要素の値が入り,next[i] に次の要素の番号が入る。配列が図の状態の場合,リストの3番目と4番目との間に値がHである要素を挿入したときの next[8] の値はどれか。ここで,next[0] がリストの先頭(1番目)の要素を指し,next[i] の値が0である要素はリストの最後を示し,next[i] の値が空白である要素はリストに連結されていない。

3
5
7
8
答え
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › データ構造
同一問題 : 〔令1修7問6〕〔平30春問6
令和3年7月修了試験 問7
2分探索木になっている2分木はどれか。
答え
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › データ構造
同一問題 : 〔令1修7問5〕〔平30修1問5〕〔平28秋問6〕〔平22修7問5
令和3年7月修了試験 問8
三つのスタックA,B,Cのいずれの初期状態も [1,2,3] であるとき,再帰的に定義された関数 f() を呼び出して終了した後のBの状態はどれか。ここで,スタックが [a1,a2,…,an-1] の状態のときに an をpushした後のスタックの状態は [a1,a2,…,an-1,an] で表す。

f(){
 Aが空ならば{
  何もしない。
 }
 そうでない場合{
  Aからpopした値をCにpushする。
  f() を呼び出す。
  Cからpopした値をBにpushする。
 }
}
[1,2,3,1,2,3]
[1,2,3,3,2,1]
[3,2,1,1,2,3]
[3,2,1,3,2,1]
答え
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › データ構造
同一問題 : 〔平31春問6
令和3年1月修了試験 問9
次の規則に従って配列の要素 A[0],A[1],…,A[9] に正の整数kを格納する。kとして 16,43,73,24,85 を順に格納したとき,85が格納される場所はどこか。ここで,x mod yは,xをyで割った剰余を返す。また,配列の要素は全て0に初期化されている。

〔規則〕
(1)A[k mod 10] = 0 ならば,k を A[k mod 10] に格納する。
(2)(1)で格納できないとき,A[(k+1) mod 10] = 0 ならば,k を A[(k+1) mod 10] に格納する。
(3)(2)で格納できないとき,A[(k+4) mod 10] = 0 ならば,k を A[(k+4) mod 10] に格納する。
A[3]
A[5]
A[6]
A[9]
答え
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › データ構造
同一問題 : 〔令1修6問6〕〔平30修1問6〕〔平27修12問7〕〔平25秋問7〕〔平23秋問6
令和2年12月修了試験 問7
キューに関する記述として,最も適切なものはどれか。
最後に格納されたデータが最初に取り出される。
最初に格納されたデータが最初に取り出される。
添字を用いて特定のデータを参照する。
二つ以上のポインタを用いてデータの階層関係を表現する。
答え
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › データ構造
同一問題 : 〔平27春問5〕〔平24修6問5
令和2年7月修了試験 問8
加減乗除を組み合わせた計算式の処理において,スタックを利用するのが適している処理はどれか。
格納された計算の途中結果を,格納された順番に取り出す処理
計算の途中結果を格納し,別の計算を行った後で,その計算結果と途中結果との計算を行う処理
昇順に並べられた計算の途中結果のうち,中間にある途中結果だけ変更する処理
リストの中間にある計算の途中結果に対して,新たな途中結果の挿入を行う処理
答え
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › データ構造
同一問題 : 〔平30修6問6〕〔平26秋問5
令和2年6月修了試験 問7
2分探索木として適切なものはどれか。ここで,数字1~9は,各ノード(節)の値を表す。
答え
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › データ構造
同一問題 : 〔平31春問5〕〔平27修12問5
令和2年6月修了試験 問8
待ち行列に対する操作を,次のとおり定義する。
 ENQ n:待ち行列にデータnを挿入する。
 DEQ :待ち行列からデータを取り出す。
空の待ち行列に対し,ENQ 1,ENQ 2,ENQ 3,DEQ,ENQ 4,ENQ 5,DEQ,ENQ 6,DEQ,DEQの操作を行った。次にDEQ操作を行ったとき,取り出されるデータはどれか。
1
2
5
6
答え
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › データ構造
同一問題 : 〔平30秋問5〕〔平29修1問5〕〔平26修12問5〕〔平25秋問5〕〔平22修12問5
令和2年1月修了試験 問8
PUSH命令でスタックデータを入れ,POP命令でスタックからデータを取り出す。動作中のプログラムにおいて,ある状態から次の順で10個の命令を実行したとき,スタックの中のデータは図のようになった。1番目のPUSH命令でスタックに入れたデータはどれか。

29
7
326
55
答え
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › データ構造
同一問題 : 〔平26修1問5
令和2年1月修了試験 問9
16進数で表される9個のデータ1A,35,3B,54,8E,A1,AF,B2,B3を順にハッシュ表に入れる。ハッシュ値ハッシュ関数 f(データ) = mod(データ,8) で求めたとき,最初に衝突が起こるのはどのデータか。ここで,mod(a,b) はaをbで割った余りを表す。
54
A1
B2
B3
答え
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › データ構造
令和1年秋期 問8
A,C,K,S,Tの順に文字が入力される。スタックを利用して,S,T,A,C,Kという順に文字を出力するために,最小限必要となるスタックは何個か。ここで,どのスタックにおいてもポップ操作が実行されたときには必ず文字を出力する。また,スタック間の文字の移動は行わない。
1
2
3
4
答え
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › データ構造
平成31年1月修了試験 問5
データ構造の一つであるリストは,配列を用いて実現する場合と,ポインタを用いて実現する場合とがある。配列を用いて実現する場合の特徴はどれか。ここで,配列を用いたリストは,配列に要素を連続して格納することによって構成し,ポインタを用いたリストは,要素から次の要素へポインタで連結することによって構成するものとする。
位置を指定して,任意のデータに直接アクセスすることができる。
並んでいるデータの先頭に任意のデータを効率的に挿入することができる。
任意のデータの参照は効率的ではないが,削除や挿入の操作を効率的に行える。
任意のデータを別の位置に移動する場合,隣接するデータを移動せずにできる。
答え
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › データ構造
同一問題 : 〔平29春問4
平成30年12月修了試験 問8
プログラムの実行に関する次の記述の下線部 a~d のうち,いずれかに誤りがある。誤りの箇所と正しい字旬の適切な組合せはどれか。

 自分自身を呼び出すことができるプログラムは,a再帰的であるという。このようなプログラムを実行するときは,bスタック局所変数c仮引数及び戻り番地を格納して呼び出し,復帰するときはdFIFO(First In First Out)方式で格納したデータを取り出して復元する必要がある。

誤りの箇所正しい字句
a再入可能
b待ち行列
c実引数
dLIFOLast In First Out
答え
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › データ構造
平成30年春期 問5
次の二つのスタック操作を定義する。
 PUSH n:スタックデータ(整数値n)をプッシュする。
 POP:スタックからデータポップする。
空のスタックに対して,次の順序でスタック操作を行った結果はどれか。
 PUSH 1 → PUSH 5 → POP → PUSH 7 → PUSH 6 → PUSH 4 → POP → POP → PUSH 3
 
1
7
3
 
3
4
6
 
3
7
1
 
6
4
3
答え
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › データ構造
同一問題 : 〔平21秋問5
平成29年12月修了試験 問5
次の2分探索木から要素12を削除したとき,その位置に別の要素を移動するだけで2分探索木を再構成するには,削除された要素の位置にどの要素を移動すればよいか。

9
10
13
14
答え
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › データ構造
同一問題 : 〔平28修6問5〕〔平25春問5〕〔平23修12問5
平成29年12月修了試験 問17
プログラムの実行時に利用される記憶領域にスタック領域ヒープ領域がある。それらの領域に関する記述のうち,適切なものはどれか。
サブルーチンからの戻り番地の退避にはスタック領域が使用され,割当てと解放の順序に関連がないデータの格納にはヒープ領域が使用される。
スタック領域には未使用領域が存在するが,ヒープ領域には未使用領域は存在しない。
ヒープ領域スタック領域の予備領域であり,スタック領域が一杯になった場合にヒープ領域が動的に使用される。
ヒープ領域も構造的にはスタックと同じプッシュとポップの操作によって,データの格納と取出しを行う。
答え
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › データ構造
平成29年7月修了試験 問5
FIFOFirst-In First-Out)の処理に適したデータ構造はどれか。
2分木
キュー
スタック
ヒープ
答え
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › データ構造
同一問題 : 〔平22修6問5
平成29年1月修了試験 問6
親の節の値が子の節の値より小さいヒープがある。このヒープへの挿入は,要素を最後部に追加し,その要素が親よりも小さい間,親と子を交換することを繰り返せばよい。次のヒープの*の位置に要素7を追加したとき,Aの位置に来る要素はどれか。

7
11
24
25
答え
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › データ構造
平成28年春期 問5
10個の節(ノード)から成る次の2分木の各節に,1から10までの値を一意に対応するように割り振ったとき,節a,bの値の組合せはどれになるか。ここで,各節に割り振る値は,左の子及びその子孫に割り振る値よりも大きく,右の子及びその子孫に割り振る値よりも小さくするものとする。

a=6,b=7
a=6,b=8
a=7,b=8
a=7,b=9
答え
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › データ構造
同一問題 : 〔平23修6問5
平成28年春期 問6
2次元の整数型配列aの各要素 a(i,j)の値は,2i+j である。このとき,a(a(1,1)×2,a(2,2)+1)の値は幾つか。
12
13
18
19
答え
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › データ構造
平成27年秋期 問5
ポインタを用いた線形リストの特徴のうち,適切なものはどれか。
先頭の要素を根としたn分木で,先頭以外の要素は全て先頭の要素の子である。
配列を用いた場合と比較して,2分探索を効率的に行うことが可能である。
ポインタから次の要素を求めるためにハッシュ関数を用いる。
ポインタによって指定されている要素の後ろに,新たな要素を追加する計算量は,要素の個数や位置によらず一定である。
答え
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › データ構造
平成27年6月修了試験 問5
次の2分探索木に12を追加したとき,追加された節12の位置を正しく表している図はどれか。
答え
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › データ構造
平成26年12月修了試験 問6
節点1,2,…,nをもつ木を表現するために,大きさnの整数型配列 A[1],A[2],…,A[n] を用意して,節点iの親の番号を A[i] に格納する。節点kが根の場合は A[k]=0 とする。表に示す配列が表す木の葉の数は,幾つか。


i12345678
A[i]01133555
1
3
5
7
答え
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › データ構造
同一問題 : 〔平24修1問5〕〔平22秋問6
平成26年1月修了試験 問6
データ構造の一つである木構造の特徴はどれか。
階層の上位から下位に節点をたどることによって,データを取り出すことができる。
格納した順序でデータを取り出すことができる。
格納した順序とは逆の順序でデータを取り出すことができる。
データ部と一つのポインタ部で構成されるセルをたどることによって,データを取り出すことができる。
答え
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › データ構造
同一問題 : 〔平22修6問6
平成25年秋期 問6
リストは,配列で実現する場合とポインタで実現する場合とがある。リストを配列で実現した場合の特徴として,適切なものはどれか。
リストにある実際の要素数にかかわらず,リストの最大長に対応した領域を確保し,実際には使用されない領域が発生する可能性がある。
リストにある実際の要素数にかかわらず,リストへの挿入と削除は一定時間で行うことができる。
リストの中間要素を参照するには,リストの先頭から順番に要素をたどっていくので,要素数に比例した時間が必要となる。
リストの要素を格納する領域の他に,次の要素を指し示すための領域が別途必要となる。
答え
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › データ構造
平成24年秋期 問5
四つのデータA,B,C,Dがこの順に入っているキューと空のスタックがある。手続pop_enq,deq_pushを使ってキューの中のデータをD,C,B,Aの順に並べ替えるとき,deq_pushの実行回数は最小で何回か。ここで,pop_enqスタックから取り出したデータキューに入れる操作であり,deq_pushはキューから取り出したデータスタックに入れる操作である。
2
3
4
5
答え
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › データ構造
平成24年春期 問7
多数のデータ単方向リスト構造で格納されている。このリスト構造には,先頭ポインタとは別に,末尾のデータを指し示す末尾ポインタがある。次の操作のうち,ポインタを参照する回数が最も多いものはどれか。
リストの先頭にデータを挿入する。
リストの先頭のデータを削除する。
リストの末尾にデータを挿入する。
リストの末尾のデータを削除する。
答え
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › データ構造
平成23年秋期 問5
スタック1,2があり,図の状態になっている。関数fはスタック1からポップしたデータをそのままスタック2にプッシュする。関数gはスタック2からポップしたデータを出力する。b,c,d,aの順番に出力するためには,関数をどの順で実行すればよいか。

f,f,g,f,f,g,g,g
f,f,g,f,g,f,g,g
f,f,g,f,g,g,f,g
f,f,g,g,f,f,g,g
答え
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › データ構造
平成23年7月修了試験 問5
データ構造に関する記述のうち,適切なものはどれか。
2分木は,データ間の関係を階層的に表現する木構造の一種であり,すべての節が二つの子をもつデータ構造である。
スタックは,最初に格納したデータを最初に取り出す先入れ先出しのデータ構造である。
線形リストは,データ部と次のデータの格納先を指すポインタ部から構成されるデータ構造である。
配列は,ポインタの付替えだけでデータの挿入・削除ができるデータ構造である。
答え
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › データ構造
平成23年春期 問5
空の2分探索木に,8,12,5,3,10,7,6の順にデータを与えたときにできる2分探索木はどれか。
答え
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › データ構造
平成21年12月修了試験 問5
すべての葉が同じ深さをもち,葉以外のすべての節点が二つの子をもつ2分木に関して,節点数と深さの関係を表す式はどれか。ここで,nは節点数,kは根から葉までの深さを表す。例に示す2分木の深さkは2である。

n=2k+3
n=2k+1-1
n=(k-1)(k+1)+4
n=k(k+1)+1
答え
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › データ構造
平成21年12月修了試験 問6
B木に関する記述として,適切なものはどれか。
階層の深さが同じになるように,ノードの分割と併合を行う。
キー値からある関数によって,データの格納位置を求める。
先頭データからの順次アクセスだけが可能である。
登録簿とメンバに分かれ,メンバは順編成ファイルである。
答え
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › データ構造
平成21年12月修了試験 問49
データ構造の特徴のうち,適切なものはどれか。
配列は,添字によってデータを任意の順序で読み出すことができる。
配列を用いることによって,データ構造アルゴリズムを独立させることができる。
リストは,添字によってデータの検索や更新ができる。
リストは,データの挿入や削除のときに既存のデータを移動する必要がある。
答え
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › データ構造
平成21年春期 問5
関数や手続を呼び出す際に,戻り番地や処理途中のデータを一時的に保存するのに適したデータ構造はどれか。
2分探索木
キュー
スタック
双方向連結リスト
答え
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › データ構造
ホーム画面への追加方法
1.ブラウザの 共有ボタンのアイコン 共有ボタンをタップ
2.メニューの「ホーム画面に追加」をタップ
閉じる