3
再帰、スタック、またはキューなしでツリーをたどることができますか?
半年前、私はデータ構造クラスに座っていました。そこでは、再帰、スタック、キューなど(または他の同様のデータ構造)といくつかのポインターを使用せずに誰もがツリーを横断できる場合、教授は追加のクレジットを提供しました。私はその質問に対する明白な答えだと思ったものを思いついたが、それは教授によって最終的に受け入れられた。私は同じ学部の別の教授と一緒に離散数学クラスに座っていました。彼は、再帰、スタック、キューなどなしでツリーを横断することは不可能であり、私の解決策は無効であると主張しました。 それで、それは可能ですか、不可能ですか?なぜですか? 編集:明確化を追加するために、3つの要素(各ノードに保存されたデータと2つの子へのポインター)を持つバイナリツリーにこれを実装しました。私のソリューションは、わずかな変更を加えるだけでn項ツリーに拡張できます。 私のデータ構造の教師は、ツリーの変更に対して何の制約も課していませんでした。実際、彼自身の解決策は、子ポインターを使用してツリーを下に向けることであることがわかりました。私の離散数学教授は、ツリーの突然変異は、ツリーの数学的な定義によるとツリーではなくなったことを意味し、彼の定義は親へのポインタも排除することを言った-これは上記で解決した場合と一致します。