ITパスポート

ITパスポート 令和4年度 問90|ソフトウェア・ファイルシステムに関する問題

問題

ITパスポート | 令和4年度 | 分野:テクノロジ系

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

木構造(根・節・葉の例/出典: 令和4年度 ITパスポート試験 問90・IPA)

図の出典:出典:IPA(情報処理推進機構)公式 ITパスポート試験 令和4年度 問90

キーボード:1〜4で選択・Enterで次へ

タップするとすぐ答え合わせ

答え合わせ

正解は A
  • A
  • B
  • C
  • D

自信の3択

えらぶと、この端末に記録します(登録はいりません)

解説

答えは a(節:ディレクトリ/葉:ディレクトリ又はファイル) です。

パソコンのフォルダは“木”のような形で整理されています。枝分かれする途中の点(節)には、必ずさらに中身を入れられるフォルダ(ディレクトリ)が来ます。

枝の先っぽ(葉)は、中身が入っていない終点。ファイルはもちろん、空っぽのフォルダも終点になれます。だから葉は「ファイルまたはフォルダ」の両方OK。

👉 覚え方:「途中の枝分かれ=必ずフォルダ/先っぽ=ファイルか空フォルダ」。

ファイルの中に別のものは入れられないので、ファイルは途中(節)になれません。

なぜこれが正解か

正解は a。木構造で、中間ノード(節)は必ず子を持つ。子(配下のファイル・ディレクトリ)を持てるのはディレクトリだけなので、節は必ずディレクトリ。

末端ノード(葉)は子を持たない。ファイルは当然子を持たず葉になる。さらに「空のディレクトリを許す」ため、中身のないディレクトリも葉になり得る。よって葉は「ディレクトリ又はファイル」。

各選択肢の解説

  • b 葉をファイル限定にしているが、空ディレクトリも葉になり得るため不適。
  • c・d 節をファイルとしているが、ファイルは子を持てず節になれないため不適。

覚え方・ひっかけ注意

「節=必ずディレクトリ、葉=ファイル or 空ディレクトリ」。本問の鍵は条件文「空のディレクトリを許す」。これを見落とすと葉をファイル限定(b)と誤答しやすい。

理論的背景

ファイルシステムの木構造は離散数学の「根付き木(rooted tree)」として厳密に定義できる。根(ルートノード)を起点として、各ノードは0個以上の子ノードを持ち、親を持たないのは根のみという制約がある。内部ノード(節)は1個以上の子を持つノードで、葉(末端ノード)は子を一切持たないノードだ。この定義をファイルシステムに適用すると、「子を持てる」のはディレクトリだけであり、ファイルは他のファイルやディレクトリを内包できないため本質的に葉にしか成れない。一方ディレクトリは子を持てるため節になれるが、問題文の条件「空のディレクトリを許す」という記述が重要で、子を0個持つ空ディレクトリは子のない終端ノード=葉として木構造上に存在できる。これにより「葉=ファイルのみ」ではなく「葉=ファイルまたは(空の)ディレクトリ」が正解となる。

実務での使われ方

Windowsのファイルシステム(NTFSやexFAT)、LinuxのExt4・XFS・Btrfs、macOSのAPFSはいずれもこの階層的ディレクトリ構造を採用している。絶対パス(ルートから完全な経路を記述)と相対パス(カレントディレクトリからの相対経路)は、システム管理・プログラミング・シェルスクリプトで日常的に使われる概念だ。実際のOSではシンボリックリンク(Linuxの`ln -s`、WindowsのJunction等)がファイルやディレクトリへの別名参照を作るため、純粋な木構造から外れた有向グラフ(有向非巡回グラフ・DAG)になる場合がある。これにより`rm -rf`などの再帰処理でループが発生しないよう、カーネルはシンボリックリンクの横断回数を制限する仕組みを持つ。試験ではこの現実との差異を問うことはなく、理論的な木構造として扱う。

試験での位置づけ

ソフトウェア・データ構造の分野で出題される良問で、「空のディレクトリを許す」という条件文を見落とすと誤答bを選んでしまう設計になっている。論理的な条件分析力を試す問題として基本情報技術者でも類題が頻出する。木構造の基本用語(根・節・葉・高さ・深さ・次数)と、それをファイルシステムに対応させる応用力が問われる。基本情報技術者では二分木・二分探索木・ヒープ木・B木(データベースのインデックス構造)・木の走査(前順・中順・後順)まで出題範囲が広がり、コードトレース問題と組み合わせた出題が増えている。

選択肢の発展補足

選択肢b(葉:ファイルのみ):「空のディレクトリを許す」という条件を見落とした場合に選んでしまう典型的な誤答だ。空ディレクトリは子を持たない終端ノードであり、木構造の定義上は葉に含まれる。この選択肢を誤答する人は「葉=ファイル」と直感的に決め付けた可能性が高く、条件文を正確に読む習慣が欠如していることを示す。選択肢c(節:ファイル/葉:ディレクトリ又はファイル):ファイルが節(中間ノード)になるには子ノードを持てる必要があるが、ファイルは他のエントリを内包できないため不可能だ。この選択肢はファイルとディレクトリの根本的な役割を逆転させている。選択肢d(節:ファイル/葉:ディレクトリ):cと同様にファイルが節になるという誤りに加え、葉がディレクトリに限定されるというさらなる誤りを含む。現実のディレクトリは子を持つことで節になれる存在であり、葉に限定できない。これらの選択肢は「ファイルとディレクトリの関係性」を理解しているかの確認として機能している。

この問題の根拠出典:IPA(情報処理推進機構)公式 ITパスポート試験 令和4年度 問90
訂正の記録この問題の訂正はありません(サイト全体の記録)
出典と作り方

出典:IPA(情報処理推進機構)公式 ITパスポート試験 令和4年度 問90/ 公的機関配布資料につき出典明記の上引用。解説は合格ナビ独自の3段階の解説(初級・標準・上級)です。