ITパスポート 2022年 問90
問題文
ディレクトリ又はファイルがノードに対応する木構造で表現できるファイルシステムがある。ルートディレクトリを根として図のように表現したとき、中間ノードである節及び末端ノードである葉に対応するものの組合せとして、最も適切なものはどれか。ここで、空のディレクトリを許すものとする。


選択肢
ア:(正解)
イ:
ウ:
エ:
🔒 解説は解答すると表示されます
ファイルシステムの木構造における節(中間ノード)と葉(末端ノード)【ITパスポート 解説】
正解の理由
図は「ルート(根)」から枝分かれする木構造で、子を持つ中間ノード(節)と子を持たない末端ノード(葉)がある問題です。ファイルシステムでは、ディレクトリ(ディレクトリ:ファイルや他のディレクトリを格納する入れ物)が他の項目を含めることができるため、子(子ノード)を持つノードはディレクトリです。ファイル(ファイル:データのまとまり)は通常他のノードを持たないので葉になりますが、「空のディレクトリを許す」と明記されているため、葉はファイルでも空のディレクトリでもありえます。したがって、節=ディレクトリ、葉=ディレクトリ又はファイルを示す ア が最も適切です。
(用語補足)
- ディレクトリ(directory):ファイルや他のディレクトリを格納する入れ物
- ファイル(file):データや文書などのまとまり
- ノード(node):木構造の要素(根・節・葉など)
- ルート(root):木構造の最上位のノード
- 節(中間ノード):子を持つノード
- 葉(末端ノード):子を持たないノード
解法ステップ
- 図のノードのうち、子(下に枝が伸びている)を持つものは「節(中間ノード)」であると確認する。
- 子を持てるものはファイルではなくディレクトリである(ファイルは普通中に他を持たない)。
- 葉(子を持たないノード)は、ファイルである場合が多いが、「空のディレクトリを許す」とあるので、葉はファイルでも空のディレクトリでもあり得ると判断する。
- 選択肢と照合し、節=ディレクトリ、葉=ディレクトリ又はファイルの組合せに一致するものを選ぶ(ア)。
選択肢別の誤答解説
-
ア:節=ディレクトリ、葉=ディレクトリ又はファイル
正しい。子を持つ節はディレクトリ、葉はファイルか空ディレクトリのどちらでもあり得るため適合する。 -
イ:節=ディレクトリ、葉=ファイル
一見もっともらしいが誤り。設問で「空のディレクトリを許す」と明示しているため、葉がディレクトリである可能性を排除してはいけない。 -
ウ:節=ファイル、葉=ディレクトリ又はファイル
誤り。ファイルは通常中に他を格納しないため節(子を持つノード)になれない。節に「ファイル」を当てるのは論理的に矛盾する。 -
エ:節=ファイル、葉=ディレクトリ
明らかに誤り。節がファイルであることは不適切で、さらに葉が必ずディレクトリであるとは限らない(ファイルであることが多い)。
よくある誤解
-
「葉=必ずファイル」と思い込む
→ 多くのケースで葉はファイルだが、設問で空のディレクトリを許すなら葉がディレクトリである可能性もある点を見落としやすいです。 -
「ファイルも中に入れられるなら節になれる」と考える
→ 一般的なファイルは子を持たないため節になりません(特殊な扱いをするシステムを除く)。
補足コラム
UNIX系OSではディレクトリ自体が「ファイルとして扱われる」内部実装の見方もあります(「すべてはファイル」的な概念)。しかし、木構造で「親→子」のモデルを考える場合は、機能として子を持てるのがディレクトリであり、抽象的なノードの役割で判断するのが正解への近道です。また、シンボリックリンク(シンボリックリンク:ある場所への参照)やマウントによって木構造が別の形になる場合もありますが、基本問題では単純な親子関係の有無で判断します。
FAQ
Q1. ルート(根)は必ずディレクトリですか?
A1. はい。ファイルシステムの木の最上位はディレクトリです(仮に中身が空でもディレクトリとして存在します)。
A1. はい。ファイルシステムの木の最上位はディレクトリです(仮に中身が空でもディレクトリとして存在します)。
Q2. 空のディレクトリは葉としてカウントしますか?
A2. はい。子を持たなければ葉に該当します。設問で「空のディレクトリを許す」とある場合は葉がディレクトリであり得ます。
A2. はい。子を持たなければ葉に該当します。設問で「空のディレクトリを許す」とある場合は葉がディレクトリであり得ます。
Q3. 特殊なファイル(例:アーカイブ)で中身を持つ場合はどう扱う?
A3. 問題文が示す抽象モデルでは、通常の「ファイル」は子を持たないとして扱います。特殊例は考慮しないのが基本です。
A3. 問題文が示す抽象モデルでは、通常の「ファイル」は子を持たないとして扱います。特殊例は考慮しないのが基本です。
関連キーワード: ファイルシステム、ディレクトリ、木構造、ノード、節、葉、空ディレクトリ、ルート

\ せっかくなら /
ITパスポートを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

