「ボートをつなぐ」解答
- 正解は「やりかた1」
- やりかた1では、誰も流されることなく、安全につなげることができます。
- ボートCのフックをDにつなぐ。次にボートBのフックをDからはずしてCにつなぐ。最後にボートMのフックをCからはずす。
- やりかた2では、ボートBのフックをDから外すと、Dは流されてしまいます。
- ボートBのフックをDからはずしてCにつなぐ。次にボートCのフックをDにつなぐ。最後にボートMのフックをCからはずす。
- やりかた3では、ボートMのフックは1つしかないので、Dにつなげません。
- ボートMのフックをDにつなぐ。次にボートBのフックをDからはずしてCにつなぐ。最後にボートMのフックをCからはずす。
- やりかた4では、ボートMのフックをCから外すと、Cは流されてしまいます。
- ボートMのフックをCからはずす。次にボートBのフックをDからはずしてCにつなぐ。最後にボートCのフックをDにつなぐ。
- 解説
- 連結リストというデータ構造を扱った問題です。
- 連結リストのデータは、次のデータをポインター(この問題のフック)で順につなげることで、データを一直線上の構造で記憶します。
- 連結リストは配列と似ていますが、データには番号がなく、途中のデータを削除したり途中にデータを挿入したときに、後ろのデータをずらす必要がありません。