新らしくなった基本情報 科目 B アルゴリズムとプログラミング サンプル問題3をJavaにしてみました
2023 年 4 月からIPA (独立行政法人情報処理推進機構)の基本情報技術者試験の制度が変更されました。
ここでは、「基本情報技術者試験 科目 B のサンプル問題」の中から、アルゴリズムとプログラミングの問題を取り上げ、Javaのソースコードを示します。
新人エンジニア研修に参加されている皆様の参考になれば幸いです。
問 3
次のプログラム中のaとbに入れる正しい答えの組合せを,解答群の中から選べ。
手続 append は,引数で与えられた文字を単方向リストに追加する手続である。単方向リストの各要素は,クラス ListElement を用いて表現する。クラス ListElement の説明を図に示す。ListElement 型の変数はクラス ListElement のインスタンスの参照を格納するものとする。大域変数 listHead は,単方向リストの先頭の要素の参照を格納する。リストが空のときは,listHead は未定義である。
| メンバ変数 | 型 | 説明 |
|---|---|---|
| val | 文字型 | リストに格納する文字。 |
| next | ListElement | リストの次の文字を保持するインスタンスの参照。初期状態は未定義である。 |
| コンストラクタ | 説明 |
|---|---|
| ListElement(文字型: qVal) | 引数 qVal でメンバ変数 val を初期化する。 |
図 クラス ListElement の説明
【プログラム】
大域: ListElement: listHead ← 未定義の値
○append(文字型: qVal)
ListElement: prev, curr
curr ← ListElement(qVal)
if (listHead が a)
listHead ← curr
else
prev ← listHead
while (prev.next が 未定義でない)
prev ← prev.next
endwhile
prev.next ← b
endif
【解答群】
| a | b | |
| ア | 未定義 | curr |
|---|---|---|
| イ | 未定義 | curr.next |
| ウ | 未定義 | listHead |
| エ | 未定義でない | curr |
| オ | 未定義でない | curr.next |
| カ | 未定義でない | listHead |
【Javaプログラム】
【結果】
| LinkedList: s a y c o n |
【プログラムの解説】
このプログラムは、単方向連結リストを実装し、新しい要素をリストの末尾に追加するメソッド append を定義しています。
ListElement クラスは、リストの要素を表すためのクラスで、char 型の val フィールドと、次の要素を指す next フィールドを持ちます。
LinkedList クラスは、リストの先頭要素を表す listHead フィールドを持ち、append メソッドが定義されています。append メソッドは、新しい要素をリストの末尾に追加するためのメソッドです。リストが空の場合は、新しい要素をリストの先頭に設定します。リストに既に要素がある場合は、リストの末尾に新しい要素を追加します。
printList メソッドは、リストの中身を表示するためのメソッドです。listHead フィールドからリストの先頭要素を取得し、次の要素が null になるまで、各要素の val フィールドの値を表示します。
テストクラス Q3 では、LinkedList クラスのインスタンスを作成し、append メソッドで要素を追加しています。最後に、printList メソッドを呼び出して、リストの内容を表示しています。
IT企業向け新人研修おすすめ資料 無料公開中 (saycon.co.jp)
投稿者プロフィール
- 代表取締役
-
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。
最新の投稿
山崎講師2025年11月2日Pythonの「なるほど!」と思えるユニークな機能④
山崎講師2025年11月2日Pythonの「なるほど!」と思えるユニークな機能③
山崎講師2025年11月2日Pythonの「なるほど!」と思えるユニークな機能②
山崎講師2025年11月2日Pythonの「なるほど!」と思えるユニークな機能①