基本情報技術者試験 - 令和5年1月修了 - 問7
2分木を入力するためのテキスト表現を,次のように規定した。図のように節に番号をつけたとき,テキスト表現として適切なものはどれか。
〔テキスト表現〕
(1)(左部分木の節番号又はテキスト表現,節番号,右部分木の節番号又はテキスト表現)と表す。
(2)部分木が空のときはxを書く。
〔テキスト表現〕
(1)(左部分木の節番号又はテキスト表現,節番号,右部分木の節番号又はテキスト表現)と表す。
(2)部分木が空のときはxを書く。

| ア | ((1,2),3,(4,5,6)) |
|---|---|
| イ | ((1,2,3),x,(4,5,6)) |
| ウ | ((1,2,x),3,(4,5,6)) |
| エ | ((1,2,x),3,(6,5,4)) |
答え : ウ
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › データ構造
解説 :
問題で定義されたテキスト表現は,二分木の各節を「(左部分木,節番号,右部分木)」という形式で表し,部分木が存在しない場合はxと書くというルールです。
図の二分木を見ると,根の節番号は3で,その左側には節番号2があり,さらにその左側に節番号1が存在します。節2の右側には部分木が存在しません。一方,根3の右側には節番号5があり,その左側に節番号4,右側に節番号6が存在します。
この構造をテキスト表現に当てはめると,まず節1と節2の部分は((1,2,x)となり,節2に右の子がないためxを書きます。次に根の節番号3を書き,最後に節4,5,6の部分を(4,5,6)と表現します。全体をつなげると((1,2,x),3,(4,5,6))となり,これが選択肢「ウ」と一致します。
「ア」は節2の右側が空であることを反映しておらず,「イ」と「エ」は節の並び方や空の表現位置が誤っています。
分野 : テクノロジ系 › 基礎理論 › アルゴリズムとプログラミング › データ構造
解説 :
問題で定義されたテキスト表現は,二分木の各節を「(左部分木,節番号,右部分木)」という形式で表し,部分木が存在しない場合はxと書くというルールです。
図の二分木を見ると,根の節番号は3で,その左側には節番号2があり,さらにその左側に節番号1が存在します。節2の右側には部分木が存在しません。一方,根3の右側には節番号5があり,その左側に節番号4,右側に節番号6が存在します。
この構造をテキスト表現に当てはめると,まず節1と節2の部分は((1,2,x)となり,節2に右の子がないためxを書きます。次に根の節番号3を書き,最後に節4,5,6の部分を(4,5,6)と表現します。全体をつなげると((1,2,x),3,(4,5,6))となり,これが選択肢「ウ」と一致します。
「ア」は節2の右側が空であることを反映しておらず,「イ」と「エ」は節の並び方や空の表現位置が誤っています。