問題タブ [deque]

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 に答える
11072 参照

python - リスト付きのPython Deque appendleft

現在deque、次を使用してオブジェクトを作成しています。

しかし、後で同様のリストをキューに追加したいのですが、を使用してappendleft、リストの前にジャンプできるようにします。私は次のことを想定しましたが、運がありませんでした。

これは可能appendleftですか?

0 投票する
4 に答える
3715 参照

data-structures - 不変の両端キューを平衡二分木として実装しますか?

不変のデータ構造としてdeque(つまり、両端キュー)を実装する方法については、しばらく考えていました。

これを行うにはさまざまな方法があるようです。AFAIK、不変のデータ構造は一般に階層的であるため、アイテムの挿入や削除などの操作を変更した後、その大部分を再利用できます。

Eric Lippertのブログには、このトピックに関する2つの 記事と、C#でのサンプル実装があります。

彼の実装は両方とも、実際に必要なものよりも複雑であると私は思います。dequesは、ツリーの「左」(前面)と「右」(背面)でのみ要素を挿入または削除できるバイナリツリーとして単純に実装できませんでしたか?

さらに、ツリーは回転と合理的にバランスが保たれます。

  • 前部への挿入時または後部からの取り外し時の右回転、および
  • 前面から取り外したり、背面に挿入したりすると、左に回転します。

エリック・リッパートは、私の意見では、私が深く尊敬している非常に賢い人ですが、彼は明らかにこのアプローチを考慮していませんでした。それで、それは正当な理由でしたか?dequesを実装するための私の提案された方法はナイーブですか?

0 投票する
3 に答える
1722 参照

c - Cでの二重リンクされたDequeの反転

Cで二重にリンクされたdequeリスト(バックセンチネルのみ)を元に戻すのに問題があります。ポインターを切り替えてアプローチしています。これまでのコードは次のとおりです。

しかし、機能していないようです。次のような両端キューを使用してテストしています。1、2、3出力は次のとおりです。3このプロセスは、数値の実際の値を台無しにしているようです。すなわち。2は2.90085e-309になります...ポインタの切り替えがめちゃくちゃだと思いますが、問題が見つかりません。そして、それは私のコードが正しいという意味ではありませんが、正常にコンパイルされます。

0 投票する
2 に答える
556 参照

deque - std::deque から前の要素を取得するには?

たとえば、約 10 個の要素を持つ配列があります。

質問:アクセスを使用せず900に要素を見つける方法は? 質量のサイズが、たとえば 123 に変更される場合、122 要素を見つける方法は?[]

[]PS:このメソッドはd[-1]チェックを実行しないため、使用したくありません...

ありがとう。

0 投票する
7 に答える
770 参照

c++ - 一般に、ベクターから両端キューに切り替えるためのサイズ制限はどれくらいですか?

私は最近、次の投稿を書きました:
c++ で VERY large 2D list of floats を保存するにはどうすればよいですか? エラー処理?

float の 2D リストのような構造をベクトルとして実装することを提案する人もいれば、deque と言う人もいました。

私が収集したものから、ベクトルは連続メモリを必要としますが、したがってより効率的です。明らかに、可能であればこれが望ましいでしょう。

したがって、私の質問は、基本構造がどのくらいの長さになるかについての良いルールは何ですか...

1. float
2. int

...メモリの問題を回避するためにベクトルから両端キューに切り替える前に?

たとえば、「約 400 万の float または 800 万の int で、切り替える必要があります...」などの回答を探しています ...可能であれば。

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

java - バイナリ ファイルを両端キューに読み取る際の問題

インストラクターの要求に応じて、ArrayList を使用して両端キューの実装を作成しています。これまでのところ、クラスの本体は次のようになります

両端キューは次のように初期化されます

Deque を別のテスト クラスでテストしましたが、正しく動作していることは確かです。しかし、この読み取りクラスを実行しようとするたびに、deck.addToBack(character) 行で java.lang.OutOfMemoryError が発生します。問題の原因と回避方法

編集: Deque の私の実装。インターフェイスは私のインストラクターによって提供されました。

}

0 投票する
5 に答える
9172 参照

c++ - ベクトルのベクトルと同様に、二重括弧/二重イテレータ演算子を定義するにはどうすればよいですか?

非常に大きなフロートの配列を使用するコードを移植しています。これにより、cからc++へのmallocエラーがトリガーされる可能性があります。ベクトルと両端キューのどちらを使用するかについて質問したところ、吉内ニキはこの安全にラップされたタイプの例を惜しみなく提供してくれました。

ベクトルの2Dベクトル/両端キューが必要だったので、次のコードに変更しました。

ここで、ブラケット演算子を定義して、使用している実際のメモリコンテナー(列挙された変数の値によって与えられる)にx[1][2]直接アクセスするようなステートメントを作成できるようにしたいと思い ます。

角かっこ演算子のオーバーライドについていくつかのチュートリアルが浮かんでいるのを見てきましたが、二重角かっこをオーバーライドする考えはまったくありません。

どうすれば二重角かっこをオーバーロードできますか?

さらに、ダブルイテレータをどのようにオーバーロードしますか(直接インデックス付けではなく、イテレータを使用したい場合)?

編集1:

Martin York / Matteo Italiaのソリューションに基づいて、次のクラスを考案しました。

ついにサイズセーフな2Dコンテナ!! みんなありがとう!

0 投票する
2 に答える
226 参照

c++ - (比較的)C++でサイズセーフにラップされたSTLコンテナ

私はC++で独学で学んでいて、それについてもっと学ぶために仕事に限られた余分な時間を費やしているので、私と一緒に耐えてください(私は日中化学工学の研究者です)。

私の目的は非常に単純です。1。フロートの長いリストを格納するためのサイズセーフなコンテナーを作成します。2.マトリックスとして機能するそのコンテナーの特殊バージョンを作成します。

私がここで提起したさまざまな質問に対するいくつかのフィードバックに基づいて、これまでに思いついたのは次のとおりです。

この実装では、次のことを試みました
。1.ラッパーのユーザーにアクセス用の2つのオプション(".get(x、y)"と "[x] [y]")を提示します
。2。ベースのラップされたクラスを持つことで再利用を最大化します。そしてそれを継承してマトリックスを作成します。
3.連続メモリ制限に達した場合に、ベクトルから両端キューに遷移する問題を解決します。

これはまともな解決策のように見えますか?提案?

0 投票する
8 に答える
38264 参照

data-structures - なぜ現実の世界でDequeデータ構造が必要なのですか?

Dequeデータ構造が必要な状況の例を教えてもらえますか?

注-は何であるか説明しないでくださいdeque

0 投票する
4 に答える
3758 参照

python - Python2.6でdequeのmaxlenを確認します


Python2.7から2.6に変更する必要がありました。
maxlenプロパティでdequeを使用していて、maxlenが何であるかを確認しています。どうやら、Python 2.6ではmaxlenを使用できますが、2.6ではdequesにmaxlen属性がありません。
Python 2.6で両端キューのmaxlenが何であるかを確認する最もクリーンな方法は何ですか?

2.7では:

2.6では、dequeを使用でき、maxlenは正しく機能しますが、maxlenは参照できる属性ではありません。

乾杯