1

試験からの質問:

  1. nサイズが不明なリンクリスト( 3divides )が与えられた場合、ポインタのみを使用し、カウンタを使用せずnに、リンクリストの要素の中央グループ(たとえば、1/3から2/3の間)を印刷するにはどうすればよいですか?3
  2. たった2つのポインターでそれをどのように行うことができますか?

備考:左に行くことはできず、右に行くだけです!

カウンターを含まない答え、何か提案を思い付くことができませんでしたか?

4

1 に答える 1

7

ポインタをテープのピックアップヘッドとして想像してみてください。それらをすべて最初から開始しますが、その後、異なる速度で移動します(ヒント、これらの速度は、互いに1/3の分数の倍数です)。次に、最も速く移動するポインターが最後に到達したときに、より遅いポインターがどこにあるかを考えます。

次に、インクリメントのみが可能で、乗算または除算はできない場合でも、ポインターをそのように移動させる方法を説明します。機械式カウンターがその数字をどのように引き継ぐかを考えてください。

そして、2つのポインターだけでそれを行う方法:開始位置に到達した後に何ができるかを考えてください:速いポインターを遅いポインターの位置に置き、繰り返します。

于 2012-06-30T01:30:01.083 に答える