私は、再帰とオブジェクト指向の設計(クラス/インタフェース構造を設計しているいくつかのエンティティがある)を練習する上で問題のあるサイトがあるかどうかを知りたかっただけです。再帰とオブジェクト指向設計を練習するためのサイト/書籍/手品はありますか?
難解な問題なしで再帰を必要とする問題の解決方法を理解していますが、新しい問題に再帰を適用することはできません。再帰を適用する方法はありますか?この質問が非常に愚かであれば、私はお詫び申し上げます!
私は、再帰とオブジェクト指向の設計(クラス/インタフェース構造を設計しているいくつかのエンティティがある)を練習する上で問題のあるサイトがあるかどうかを知りたかっただけです。再帰とオブジェクト指向設計を練習するためのサイト/書籍/手品はありますか?
難解な問題なしで再帰を必要とする問題の解決方法を理解していますが、新しい問題に再帰を適用することはできません。再帰を適用する方法はありますか?この質問が非常に愚かであれば、私はお詫び申し上げます!
Project EulerまたはUSACOのようなものを見る必要があるかもしれません。彼らは、単純なものから難しいものまで、多くの問題を提起し、それらの多くは再帰的なテクニックを使って解決することができます。続行すると、他人があなたが試みた問題をどのように解決したのかを見る機会が得られます。この方法では、再帰を学ぶだけでなく、他の多くの問題解決テクニックを学びます。
どのような問題に取り組んでいますか?私はあなたに別のチャンスがあるという新しい問題の1つを挙げてお勧めします。あなたがそれを働かせることができない場合、あなたが持っているものとあなたがやろうとしているものの簡単な例を投稿してください。誰かがあなたを引き裂いているのを見ることができるかもしれません。
は確かに、binary tree及びその運営
再帰に
例をhttp://programmingpraxis.com
それが持っている質問/サンプルの例を試し実装:そのプリント番号1から10まで、fibonnaic再帰的なプログラムを書きますシリーズ
私の経験では、より多くの数学的アルゴリズム設計で再帰が最も多く使われていますが、より高度なプログラミング(そしてOOPは通常より高いレベルです)では、再帰常に多くを追加するわけではありません。また、再帰的プロシージャは通常は容易に適用できないため、要件の1つが変更された場合、プロシージャ全体を書き直す可能性がありますが、より線形性の高いプログラミングでは、それだけお互いに依存しています。
また、(いくつかの)オブジェクト指向言語では、すべてのレベルの再帰でオブジェクトの新しいインスタンスが作成され、オーバーヘッドが発生します。
これは素晴らしい知っているテクニックですが、プロレムの種類によっては、オブジェクト指向の問題で実際に多くのことが起こることはありません。ファイル/ディレクトリのスクリプトとは別に、私は基本的にパフォーマンスやメンテナンス上の理由から、退屈なリニアメソッドへの私のクールな再帰的なソリューションのほとんどを書き直しました。
再帰を理解するには、まず再帰を理解する必要があります。 –
GNUは "GNU Not Unix"を意味します。Javaでは、ほとんどの問題はループを使って解決するのが最も良いので、良い例が見つからない場合は驚かないでください。ほとんどの機能/論理プログラミング言語では、再帰はよりしばしば自然選択である。 –