基本情報技術者試験 基本情報技術者試験 平成29年度 秋期 午前 午前 問5: A, B, C, D の順に到着するデータに対して,一つのスタックだけを用いて出力可能なデータ列はどれか。

基本情報技術者試験 平成29年度 秋期 午前
Q 55 / 80
A, B, C, D の順に到着するデータに対して,一つのだけを用いて出力可能なデータ列はどれか。
この問の正解率:56.58%(638件)
この問題の本文・選択肢・正解・解説(展開)

問題本文

A, B, C, D の順に到着するデータに対して,一つのスタックだけを用いて出力可能なデータ列はどれか。

選択肢

  • .A, D, B, C
  • .B, D, A, C
  • .C, B, D, A
  • .D, C, A, B

正解

. C, B, D, A

解説

スタックはLIFO。各データ到着時にpush/popを任意に挟める。Cを出すならA,B,Cまでpush→popでC、popでB、Dをpush→popでD、popでA → C,B,D,A 可能。

選択肢ごとの解説

  • .A,D,B,Cは Aを出してから後でBより先にDを出すには A→push,pop, B,C,Dと積んで Dを出した時点でB,Cが下に。Bを次に出すには C先になる必要があり不可。
  • .B,D,A,Cでは Bの後に Dを出した時点で残りはA,C(順A→C積み)、A出すならCを先に出す必要があり不可。
  • .C,B,D,A は前述の通り実現可能。
  • .D,C,A,Bでは A,B,C,Dをすべて積んだ後 popで D,C,B,Aと出るしかなく A,Bの順序が逆。

基本情報技術者試験 平成29年度 秋期 午前過去問一覧へ戻る・問5