単方向リストとポインタによるデータの探索【基本情報技術者試験 科目B 公開問題】

令和8年度 基本情報技術者試験 サンプル問題 科目B 問4のブログのアイキャッチ画像 科目B 公開問題
広告

← 科目Bの公開問題一覧へ戻る

 基本情報技術者試験の科目Bの公開問題を題材に,単方向リストとポインタによるデータの探索について学習します。この問題では,ポインタを使って単方向リストを先頭から順番にたどる処理を確認します。

広告

令和8年度 基本情報技術者試験 公開問題 科目B 問4

 次のプログラム中の   a    b   に入れる正しい答えの組合せを,解答群の中から選べ。ここで,配列の要素番号は1から始まる。

 単方向リストを,配列 dataList と pointerList の二つの配列で表現する。dataList にリストの要素の値を格納し,pointerList にリストの次の要素に対応する dataList の要素番号を格納する。単方向リストの先頭は,dataList[1] 及び pointerList[1] の組みである。単方向リストの末尾に対応する pointerList の要素は未定義である。dataList のうち単方向リストの要素の値を格納していない要素と,対応する pointerList の要素は未定義である。

 プログラムが扱う dataList 及び pointerList の内容を図1に示す。先頭の次の要素の要素番号は,pointerList[1] に格納された 3 であり,値は dataList[3] に格納された 20 である。その次の要素の要素番号は pointerList[3] に格納された 2 であり,値は dataList[2] に格納された 30 である。

「令和8年度 基本情報技術者試験 公開問題 科目B 問2」の問題_画像01

 関数 orderList は,図1の dataList 及び pointerList で表現した単方向リストの値を,単方向リストの先頭からたどって順番に格納した配列を返す。関数 orderList が返す配列を図2に示す。

「令和8年度 基本情報技術者試験 公開問題 科目B 問2」の問題_画像02

〔プログラム〕

大域: 整数型の配列: dataList ← {10,30,20,40,未定義の値}

大域: 整数型の配列: pointerList ← {3,4,2,未定義の値,未定義の値}

○整数型の配列: orderList()

 整数型: i,p ← 1

 整数型の配列: linearList ← {}  // 要素数0の配列

 for (i を 1 から dataListの要素数 まで 1 ずつ増やす)

  linearListの末尾に dataList[p]の値 を追加する

  if (   a   が未定義)

   繰返し処理を終了する

  endif

  p ←   b  

 endfor

 return linearList

解答群

a

b

dataList[p]i
dataList[p]pointerList[p]
pointerList[p]i
pointerList[p]pointerList[p]

【解答】

【解説】

dataList には各要素の値が,pointerList には次にたどる要素の要素番号が格納されている。たとえば,p=1 のとき,dataList[1] の10を linearList に追加する。その後,pointerList[1] の3を使って,次に p=3 の要素をたどる。

pointerList[p] が未定義の場合は,次にたどる要素がないため,リストの末尾と判断して処理を終了する。よって,a は pointerList[p] となる。

また,次の要素をたどるには,pointerList[p] に格納されている要素番号をpに代入する。よって,bも pointerList[p] である。

「令和8年度 基本情報技術者試験 公開問題 科目B 問2」の解答_画像

この問題のポイント

 この問題から学べることは,

  • 単方向リストの基本的な構造
  • dataListとpointerListを使ってリストを表現する方法
  • ポインタを使って次の要素をたどる方法
  • 未定義のポインタを利用してリストの末尾を判定する方法
  • トレース表を使って,リストをたどる処理を追跡する方法

です。特に,pointerList[p] に格納された要素番号を利用して次の要素へ移動し,pointerList[p] が未定義になったところでリストの末尾と判断する処理を理解しておきましょう。

基本情報技術者試験の学習におすすめの参考書

基本情報技術者試験の合格を目指す方におすすめの参考書です。

令和08年 イメージ&クレバー方式でよくわかる かやのき先生の基本情報技術者教室
基礎理論からコンピュータ・ネットワーク・データベースまで、基本情報技術者試験の全範囲をわかりやすく学べる定番テキストです。図解が豊富で、初学者にもおすすめです。

キタミ式イラストIT塾 基本情報技術者 令和08年
イラストを使った解説が特徴の人気参考書です。基礎理論の考え方や計算問題もイメージで理解しやすく、独学学習との相性が良い一冊です。

令和08年 基本情報技術者 合格教本
試験範囲を体系的に学習したい方におすすめの教科書です。基礎理論の各テーマも丁寧に解説されており、理解を深めながら学習を進められます。

学習のお役に立ちましたら

この記事が少しでも学習のお役に立ちましたら,今後も分かりやすい解説や学習コンテンツを継続してお届けする励みになります。

よろしければ、このサイトを応援いただけますと嬉しいです。

※OFUSEは,クリエイターやコンテンツ制作を直接支援できるサービスです。

広告