タグ付けされた質問 「stack」

スタックは、後入れ先出し(LIFO)の抽象データ型とデータ構造です。コールスタックに関する質問については、代わりに[callstack]または[stack-pointer]を使用してください。Haskellビルドツールに関する質問については、代わりに[haskell-stack]を使用してください。C ++の標準スタックに関する質問については、代わりに[stdstack]を使用してください。

14
スタックは上向きまたは下向きに成長しますか?
私はcにこのコードを持っています: int q = 10; int s = 5; int a[3]; printf("Address of a: %d\n", (int)a); printf("Address of a[1]: %d\n", (int)&a[1]); printf("Address of a[2]: %d\n", (int)&a[2]); printf("Address of q: %d\n", (int)&q); printf("Address of s: %d\n", (int)&s); 出力は次のとおりです。 Address of a: 2293584 Address of a[1]: 2293588 Address of a[2]: 2293592 Address …
89 c  memory  stack 

5
プリミティブのJava配列はスタックまたはヒープに格納されていますか?
私はこのような配列宣言を持っています: int a[]; これaがプリミティブint型の配列です。この配列はどこに保存されますか?ヒープまたはスタックに格納されていますか?これはintプリミティブ型であり、すべてのプリミティブ型がヒープに格納されるわけではありません。

17
スタックはアセンブリ言語でどのように機能しますか?
私は現在、スタックがどのように機能するかを理解しようとしているので、自分自身にいくつかのアセンブリ言語を教えることにしました。私はこの本を使用しています。 http://savannah.nongnu.org/projects/pgubook/ 私が使用しているガスをし、上の私の開発を行っているLinuxのミント。 私は何かに少し混乱しています: 私の知る限り、スタックは単なるデータ構造です。したがって、アセンブリでコーディングする場合は、スタックを自分で実装する必要があると思いました。ただし、次のようなコマンドがあるため、これは当てはまらないようです。 pushl popl したがって、x86アーキテクチャのアセンブリでコーディングし、Gas構文を使用する場合、スタックはすでに実装されている単なるデータ構造ですか?それとも実際にハードウェアレベルで実装されていますか?それとも何か他のものですか?また、他のチップセットのほとんどのアセンブリ言語には、スタックがすでに実装されていますか? これは少しばかげた質問だと思いますが、実際にはかなり混乱しています。

8
メモリ割り当て:スタックとヒープ?
スタックとヒープの間のメモリ割り当ての基本と混同しています。標準の定義(誰もが言うこと)に従って、すべての値型はスタックに割り当てられ、参照型はヒープに入れられます。 次の例を考えてみましょう。 class MyClass { int myInt = 0; string myString = "Something"; } class Program { static void Main(string[] args) { MyClass m = new MyClass(); } } さて、メモリ割り当てはc#でどのように発生しますか?MyClass(つまりm)のオブジェクトは完全にヒープに割り当てられますか?つまり、int myIntとstring myStringの両方がヒープに行くのだろうか? または、オブジェクトは2つの部分に分割され、スタックとヒープの両方のメモリ位置に割り当てられますか?
83 c#  .net  stack  heap 

3
アイテムをスタック内の位置に移動するための最小移動数を見つける方法は?
Nがスタックの数、Pがスタックの容量であるNXPスタックのセットが与えられた場合、ロケーションAのノードから任意のロケーションBに移動するために必要なスワップの最小数を計算するにはどうすればよいですか?私はゲームを設計しています。最終的な目標は、すべてのスタックをすべて同じ色になるように並べ替えることです。 # Let "-" represent blank spaces, and assume the stacks are stacks = [ ['R', 'R', 'R', 'R'], ['Y', 'Y', 'Y', 'Y'], ['G', 'G', 'G', 'G'], ['-', '-', '-', 'B'], ['-', 'B', 'B', 'B'] ] stacks[1][1]そんな時に「B」を挿入したい場合stacks[1] = ["-", "B", "Y", "Y"]。そのために必要な移動の最小数を決定するにはどうすればよいですか? 私は複数のアプローチを見てきました。ある状態から可能なすべての動きを生成し、それらにスコアを付け、次に最良のスコアリングパスを継続する遺伝的アルゴリズムを試しました。また、問題をパスファインディングするためにDjikstraのアルゴリズムを実行しようとしました。イライラするほどシンプルに見えますが、指数時間以外で実行する方法を理解できません。ここで適用できる欠落しているアルゴリズムはありますか? 編集する 必要な移動の最小数を計算するためにこの関数を書きました:スタック:スタック内のピースを表すキャラクターのリストのリスト、スタック[0] [0]はスタックのトップです[0]スタック_インデックス:インデックスピースを追加するスタックneeds_piece:スタックに追加するピースneeds_index:ピースを配置するインデックス def calculate_min_moves(stacks, stack_ind, needs_piece, …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.