試験からの質問:
n
サイズが不明なリンクリスト(3
divides )が与えられた場合、ポインタのみを使用し、カウンタを使用せずn
に、リンクリストの要素の中央グループ(たとえば、1/3から2/3の間)を印刷するにはどうすればよいですか?3
- たった2つのポインターでそれをどのように行うことができますか?
備考:左に行くことはできず、右に行くだけです!
カウンターを含まない答え、何か提案を思い付くことができませんでしたか?
試験からの質問:
n
サイズが不明なリンクリスト( 3
divides )が与えられた場合、ポインタのみを使用し、カウンタを使用せずn
に、リンクリストの要素の中央グループ(たとえば、1/3から2/3の間)を印刷するにはどうすればよいですか?3
備考:左に行くことはできず、右に行くだけです!
カウンターを含まない答え、何か提案を思い付くことができませんでしたか?
ポインタをテープのピックアップヘッドとして想像してみてください。それらをすべて最初から開始しますが、その後、異なる速度で移動します(ヒント、これらの速度は、互いに1/3の分数の倍数です)。次に、最も速く移動するポインターが最後に到達したときに、より遅いポインターがどこにあるかを考えます。
次に、インクリメントのみが可能で、乗算または除算はできない場合でも、ポインターをそのように移動させる方法を説明します。機械式カウンターがその数字をどのように引き継ぐかを考えてください。
そして、2つのポインターだけでそれを行う方法:開始位置に到達した後に何ができるかを考えてください:速いポインターを遅いポインターの位置に置き、繰り返します。