ファイルシステムの木構造では節と葉をどう見分ける?
ITパスポート試験 令和4年度 問90 / ソフトウェア › ファイルシステム
過去問にチャレンジ
ディレクトリ又はファイルがノードに対応する木構造で表現できるファイルシステムがある。ルートディレクトリを根として図のように表現したとき,中間ノードである節及び末端ノードである葉に対応するものの組合せとして,最も適切なものはどれか。ここで,空のディレクトリを許すものとする。


- ア
節:ディレクトリ、葉:ディレクトリ又はファイル
- イ
節:ディレクトリ、葉:ファイル
- ウ
節:ファイル、葉:ディレクトリ又はファイル
- エ
節:ファイル、葉:ディレクトリ
会話形式の解説
講師この問題は、図の各ノードに子があるかどうかに注目すると整理できます。
受験者枝が分かれるところが節ですね。枝の先にある葉は、ファイルだけだと思いました。
講師節は子ノードを持つ中間ノードです。ほかのディレクトリやファイルを格納できるので、ディレクトリに対応します。
受験者では、葉は子ノードがないものですね。空のディレクトリも葉になりますか。
講師はい。葉にはファイルのほか、空のディレクトリも対応します。したがって、節がディレクトリ、葉がディレクトリ又はファイルという組合せが適切です。
受験者節をディレクトリ、葉をファイルとする組合せは、空のディレクトリを見落としているのですね。
講師そのとおりです。また、節をファイルとする組合せも、ファイルは子ノードを持たないので適切ではありません。
受験者節をファイル、葉をディレクトリとする組合せは、葉になれるファイルも除いてしまいますね。
講師はい。図では枝が分かれるノードが節、枝の先の三つのノードが葉です。名前だけで決めず、子ノードの有無で見分けましょう。
まとめ
節は子ノードを持つ中間ノードなので、ディレクトリに対応します。葉は子ノードを持たない末端ノードで、ファイルだけでなく空のディレクトリも含みます。したがって、適切な組合せはアです。
解答・解説
正解はアです
この問題のテーマ
ファイルシステムを木構造で表したとき、子を持つ節と、子を持たない葉に何が対応するかを問う問題です。
解き方の考え方
図では、根の下でさらに枝が分かれるノードが節、枝の先にある三つのノードが葉です。まず、子を持てるのはディレクトリかファイルかを考えます。次に、空のディレクトリも許されるという条件を葉の判定に使います。
選択肢ごとの解説
- ○ア 節:ディレクトリ、葉:ディレクトリ又はファイル節は子ノードを持つので、ほかのディレクトリやファイルを格納できるディレクトリに対応します。葉は子ノードを持たず、ファイルのほか、空のディレクトリにも対応します。
- ×イ 節:ディレクトリ、葉:ファイル節をディレクトリとする点は適切です。しかし、葉をファイルだけに限ると、子ノードを持たない空のディレクトリを含められません。
- ×ウ 節:ファイル、葉:ディレクトリ又はファイル葉をディレクトリ又はファイルとする点は適切です。一方、ファイルは子ノードを持たないため、枝が分かれる節には対応しません。
- ×エ 節:ファイル、葉:ディレクトリファイルは子ノードを持たないので、節には対応しません。また、ファイルも葉になれるため、葉をディレクトリだけに限ることもできません。
補足
「葉はファイルだけ」と考えると、空のディレクトリを見落とします。ディレクトリかファイルかという名前だけでなく、子ノードがあるかどうかで判定しましょう。
POINT
- 節は子ノードを持つ中間ノードです。
- 葉は子ノードを持たない末端ノードです。
- ファイルは節にならず、葉になります。
- 空のディレクトリも葉になります。
