問題タブ [non-recursive]

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.

0 投票する
1 に答える
1091 参照

c - オブジェクトファイルが別のディレクトリにある単純な非再帰的な Makefile

非再帰的なメイクファイルを使用して単純なプロジェクトを完成させるために、いくつかの例を検索して試してみました。以前は、単純な単一ディレクトリのコードベースを使用していましたが、現在は複数のエンジニア用の環境をまとめています :-)

ライブラリコードと複数のアプリケーションがすべて「app」ディレクトリにある2つのディレクトリ(おそらく3番目以降)だけです。きれいにするために、.o ファイルと .d ファイルを別の obj/ ディレクトリに保持したいと考えています。

  1. ライブラリを検証するために、lib1 や lib2 などの各サブディレクトリで「make」を実行できるようにしたいと考えています。それぞれ libabc.a と libxyz.a が生成されます。
  2. 簡単な Makefile を書きましたが、ルールが機能せず、GNU の make マニュアルを理解しようとしましたが、道に迷っています。

lib1/メイクファイル:

アプリ/メイクファイル:

ここで、各 Makefile で同じターゲットを定義するのに問題があります (明らかに)。lib1 が含まれているため、lib1/Makefile と app/Makefile でクリーンを定義できなかったように。lib1だけでmake cleanを実行できることを望んでいましたが、理にかなっています。

「app」でmakeを行うと、obj/foo.oを作成するルールがなくなりました。パスがすべて偽物だからだと思います。「obj/」は lib1/obj/ を参照しますが、Makefile が含まれているため、すべて失われます。

上記のような本当に単純な Makefile を使用してプロジェクトをビルドできますか。オンラインのほとんどの例は、より多くのことを達成しようとしているため、かなり複雑です (私は信じています)。

事前に感謝します(何度も議論されたトピックについて申し訳ありません). automake と cmake は、できれば今すぐに学習したくありません。私のプロジェクトが、これらの強力なツールの使用を保証しないほど単純であることを願っています。

よろしくお願いします、

0 投票する
1 に答える
980 参照

java - 二分木非再帰バージョンでの最小共通祖先検索 - Java

Java で記述されたソートされたバイナリ ツリーで最小共通祖先を見つける非再帰アルゴリズム バージョンを検索しています。私が見つけたものはすべて、再帰バージョンのみです (stackoverflow や他の Web サイトでも)。

非再帰バージョン (while ループを使用) を書いたり、指示したりできますか? このバージョンが時間の複雑さの点でより効率的かどうかも書いてください?

0 投票する
0 に答える
228 参照

java - 非再帰 (ボトムアップ) MergeSort アルゴリズムの実装

次のアルゴリズムを実装する割り当てが与えられました。

非再帰的なmergeSortアルゴリズム  

アルゴリズム自体を読んで少し混乱しています。アルゴリズムに従おうとしましたが、完全に理解できないため、コードが機能しません。誰でも、私のコードを見てください (これは、何を修正すればよいのか理解できないビットです):

これは、再帰的な mergeSort でテストしたヘルパー メソッドであり、動作することがわかっています。

0 投票する
1 に答える
627 参照

algorithm - すべてのパスの合計を出力するアルゴリズム

次のように定義された二分木を提供します。

すべてのパスの合計を出力します。パスは、ルート ノードから任意のリーフ ノードまでの線として定義されます。

例えば:

4 5 6 7 8 10 # # # # 9

返す必要があります:

パス 1: 4 + 5 + 7

パス 2: 4 + 5 + 8 + 9

パス 3: 4 + 6 + 10

したがって、パスの合計は次のようになります: path1 + path2 + path3

を使用してどのように問題を解決できますか

  • 再帰的な
  • 非再帰的

非再帰を使用して解決策を見つけましたが、再帰的な方法について少し問題があります

非再帰的方法:

再帰的な方法:

しかし、この方法で出力したのはすべてのパスです。それらのパスの合計を取得したい場合はどうすればよいですか?

答えを得る 1 つの方法は、List> をイテレータして答えを得る方法ですが、効率が悪いと思います。メソッドでこれをどのように処理できますかhelper()。合計については、java はちょうどpass-by-value

0 投票する
1 に答える
394 参照

assembly - アセンブリで非再帰的な階乗コードを書くためのアドバイスが必要

そのため、非再帰的な階乗手順を記述しようとしていますが、ループ命令を使用しています。そのパラメーターはランタイムスタックを介して渡されます。

また、階乗プロシージャを呼び出すために、メイン PROC で一連の命令が必要です。誰もがこの部分で私を助けたいと思っています, これは私がこれまで持っているものです.

0 投票する
0 に答える
238 参照

php - ディレクトリ非再帰phpをzip

インターネット上で入手できる情報がないため、これが可能かどうかはわかりません。結果なしで2時間検索します。

ディレクトリ内のファイル名を知らずにディレクトリを圧縮しようとしています。多くの方法を試しましたが、それらにはパス全体が含まれています。zip 内のファイルのみが必要です。

私は次のことを試しました:

と:

0 投票する
1 に答える
694 参照

recursion - 繰り返しで再帰的な BNF ルールを書き直す

次の再帰 BNF ルールを見てください。

これは次のような文を生成します

これは次のように記述できます。

右辺が再帰的でない場合

次の再帰的 BNF ルールを見てみましょう。

これは次のような文を生成します

ルール (1) をルール (2) に書き直したときと同様に、ルール (3) を非再帰的な方法で書き直す方法はありますか。

括弧のバランスをとる必要があるため、X = {* b }* は良くないことに注意してください。

0 投票する
0 に答える
735 参照

java - 再帰と値のない Java の KnapSack アルゴリズム

再帰を使用してJavaのナップザックの問題を解決する多くのソリューションを見てきました。おそらく「スタック」またはその他の最適なソリューションを使用する非再帰関数にソリューションを変換しようとしています。また、値の配列もありません。重みを総重量容量に合わせたいだけです。

たとえば、60、50、40、10、30 として入力された重量があり、W (容量) は 180 です。

サンプル KnapSack (値配列付き); しかし、私のソリューションでは値配列は必要ありません。Java で再帰を使用してナップザックの問題を解決する多くのソリューションを見てきました。おそらく「スタック」またはその他の最適なソリューションを使用する非再帰関数にソリューションを変換しようとしています。また、値の配列もありません。重みを総重量容量に合わせたいだけです。

たとえば、60、50、40、10、30 として入力された重量があり、W (容量) は 180 です。