問題タブ [recursion]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Javaでリンクされたリストを再帰的に逆にする
私はしばらくの間、クラスのJavaプロジェクトに取り組んでいます。これは、リンクされたリスト (ここでは と呼ばれ、 とAddressList
呼ばれる単純なノードを含むListNode
) の実装です。問題は、すべてを再帰アルゴリズムで行う必要があることです。私はすべてのことを1つの方法でうまく行うことができました:public AddressList reverse()
リストノード:
現在、私のreverse
関数は、再帰を許可する引数を取るヘルパー関数を呼び出すだけです。
の署名を持つヘルパー関数を使用しますprivate ListNode reverse(ListNode current)
。
現時点では、スタックを使用して繰り返し動作させていますが、これは仕様が要求するものではありません。私は C 言語でアルゴリズムを再帰的に逆にして手動で Java コードに変換するアルゴリズムを見つけましたが、それは機能しましたが、理解できませんでした。
編集:気にしないで、その間にそれを理解しました。
私がここにいる間、誰かこのルートに何か問題があると思いますか?
javascript - window.setTimeout() を使用して JavaScript で再帰メソッドを作成する方法は?
自分自身を再帰的に呼び出すメソッドを持つ JavaSCript クラスを作成しています。
プロパティの説明:
私の問題は、setTimeout() で再帰を使用している場所です。setTimeout() は、実行する文字列または関数への参照を受け入れることを知っています。この関数はオブジェクトのメソッドなので、外部から呼び出す方法がわかりません。そのため、setTimeout() の 2 番目の形式を使用して、メソッド自体への参照を渡しました。しかし、それは機能しません。
haskell - Project Euler 27 での C スタック オーバーフロー
Haskell の学習を始めたばかりで、書籍やチュートリアルを読むことと、Project Euler の問題を解決することを組み合わせています。次のコードを使用すると「C スタック オーバーフロー」エラーが発生するため、問題 27に固執しています。
euler.hs
コマンド ウィンドウ
このコマンドは、オイラー係数 1 と 41 (40 個の素数) を返します。
これは「Cスタックオーバーフロー」で失敗します(問題の定義にも記載されている係数-79と1601を取得したかった):
エラーが発生する理由と解決方法を教えてください。ありがとうございました!
私はウィンハグを使っています。
perl - Perl の複雑なデータ構造のすべての要素に対して特定の関数を実行するにはどうすればよいですか?
複雑なデータ構造のすべての HTML エンティティをデコードしたいと考えています。基本的に、「スーパーマップ()」関数を探しています。これが私がこれまでに持っているものです:
haskell - この再帰的なhaskell関数をマップ呼び出しに変えることは可能ですか?
これは私のコードです:
map関数を使用して、この再帰関数を取り除く方法を探しています。それは可能ですか?もしそうなら、どうすればいいですか?
sql - T-SQL Puzzler - オブジェクトの依存関係のクロール
このコードには、再帰的なストアド プロシージャの呼び出しと、カーソル名の衝突を回避するための「それほど優れていない」方法が含まれています。結局、カーソルを使用するかどうかは気にしません。最もエレガントなアプローチを探しているだけです。私は主に、(製品を購入することなく) Stored Proc 階層を追跡するための簡単な方法として使用します。「動的SQL」内でカーソルを試しましたが、うまくいきませんでした。10段くらい深くしたいです。
望ましい出力:
きれいではありませんが、コードは次のとおりです(期待どおりに機能しませんでした)
perl - 特定のファイルが見つかったら、再帰的な検索機能から抜け出すにはどうすればよいですか?
このモジュールを使用してFile::Find
、ディレクトリ ツリーをトラバースしています。特定のファイルを見つけたら、検索をやめたいと思います。どうやってやるの?
recursion - foldr と foldl (または foldl') の意味
まず、私が読んでいるReal World Haskellfoldl
は、決して使用せず、代わりに使用するように言っていますfoldl'
。だから信頼している。
しかし、私はいつfoldr
対を使うべきかについてぼんやりしていますfoldl'
。目の前に並べられた仕組みの違いはわかるのですが、「どっちがいい」と理解できないほどバカです。両方とも同じ答えを生成するため、どちらを使用しても問題ないように思われると思います (そうではありませんか?)。実際、この構造に関する私の以前の経験は、Rubyinject
と Clojure のreduce
もので、「左」と「右」のバージョンがないようです。(補足質問: どのバージョンを使用していますか?)
私のようなスマートに挑戦するソートを助けることができる洞察は大歓迎です!
c++ - C++ で互いにインクルードするヘッダー
私は C++ の初心者ですが、この (おそらく些細な) 質問に対する答えをオンラインで見つけることができませんでした。2 つのクラスが互いにインクルードしているコードのコンパイルに問題があります。まず、 #include ステートメントをマクロの内側または外側に配置する必要がありますか? 実際には、これは問題ではないようです。ただし、この特定のケースでは、問題が発生しています。#include ステートメントをマクロの外に置くと、コンパイラが再帰的に実行され、「#include ネストが深すぎます」というエラーが表示されます。#include が呼び出される前にどちらのクラスも完全に定義されていないため、これは私には理にかなっているようです。しかし、奇妙なことに、それらを中に入れようとすると、認識されないため、クラスの 1 つの型を宣言できません。本質的に、私がコンパイルしようとしているものは次のとおりです。
ああ
Bh
main.cpp
違いがある場合は、g++ 4.3.2 を使用しています。
明確にするために、一般的に、#include ステートメントはどこに行けばよいのでしょうか? 私は常にそれらがマクロの外に出ているのを見てきましたが、私が明確に説明したシナリオはこの原則を破っているようです. 事前にヘルパーに感謝します!ばかげた間違いを犯した場合は、私の意図を明確にすることを許可してください!