基本情報技術者試験

問4

基本情報技術者試験過去問 令和8年度(2026年)科目B問4

次のプログラム中のabに入れる正しい答えの組合せを,解答群の中から選べ。ここで,配列の要素番号は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

 

選択肢

正解と解き方・学習ポイント(AI解説)

正解:
あなたの回答:未回答
不正解
不正解
不正解
正解
順次、単語を追加予定です。もうしばらくお待ちください。