次のプログラム中の 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 である。 関数 orderList は,図 1 の dataList 及び pointerList で表現した単方向リストの値を,単方向リストの先頭からたどって順番に格納した配列を返す。関数 orderList が返す配列を図 2 に示す。 〔プログラム〕 大域: 整数型の配列: 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


出典:令和8年度 基本情報技術者試験 公開問題 科目B 問4(独立行政法人情報処理推進機構)
問題文・選択肢・正解は公開問題のとおりで、改変していません。解説と補足は当サービスによるものです。