タグ付けされた質問 「data-structures」

データ構造は、データの特定のプロパティを効率的に照会および/または更新できるようにデータを編成する方法です。

14
JavaのHashMapからキーを取得する
私はこのようにJavaでハッシュマップを持っています: private Map<String, Integer> team1 = new HashMap<String, Integer>(); 次に、次のように入力します。 team1.put("United", 5); どうすればキーを入手できますか?のようなもの:team1.getKey()「ユナイテッド」を返す。

18
Clojureでリストに特定の値が含まれているかどうかをテストする
Clojureで指定された値がリストに含まれているかどうかをテストする最良の方法は何ですか? 特に、の動作contains?は現在私を混乱させています: (contains? '(100 101 102) 101) => false リストを走査して同等かどうかをテストする簡単な関数を書くことはできますが、これを行うための標準的な方法があるはずです。

13
API設計で「パラメーターが多すぎる」問題を回避するにはどうすればよいですか?
私はこのAPI関数を持っています: public ResultEnum DoSomeAction(string a, string b, DateTime c, OtherEnum d, string e, string f, out Guid code) 嫌いです。パラメータの順序が不必要に重要になるからです。新しいフィールドを追加するのが難しくなります。何が渡されているかを確認するのは困難です。メソッドを小さな部分にリファクタリングすることは、サブ関数ですべてのパラメータを渡すという別のオーバーヘッドが発生するため、難しくなります。コードは読みにくいです。 私は最も明白なアイデアを思いつきました:データをカプセル化するオブジェクトを持ち、各パラメーターを1つずつ渡すのではなく、渡します。これが私が思いついたものです: public class DoSomeActionParameters { public string A; public string B; public DateTime C; public OtherEnum D; public string E; public string F; } これにより、API宣言が次のように減少しました。 public ResultEnum DoSomeAction(DoSomeActionParameters parameters, out Guid …

14
「凍結された口述」とは何でしょうか?
フリーズセットは、フリーズセットです。 フリーズされたリストはタプルになる可能性があります。 凍結されたdictは何でしょうか?不変でハッシュ可能な辞書。 私はそれがのようなものかもしれないと思いますがcollections.namedtuple、それは凍結キー辞書(半凍結辞書)に似ています。だよね? 「frozendict」凍結された辞書である必要があり、それが持っている必要がありkeys、values、get、など、サポートin、forなど 更新: *あります:https : //www.python.org/dev/peps/pep-0603

7
スタックでDequeを使用する必要があるのはなぜですか?
Stackユースケースのデータ構造が必要です。アイテムをデータ構造にプッシュでき、スタックから最後のアイテムのみを取得したいのですが。StackのJavaDocはこう言っています: Dequeインターフェースとその実装によって、より完全で一貫性のあるLIFOスタック操作のセットが提供されます。これは、このクラスよりも優先して使用する必要があります。例えば: Deque<Integer> stack = new ArrayDeque<>(); このデータ構造をメソッドにローカルで使用するため、ここでは同期動作は絶対に必要ありません。これとは別に、なぜ私DequeはStackここより好むのですか? PS:Dequeのjavadocによると: 両端キューは、LIFO(後入れ先出し)スタックとしても使用できます。このインターフェイスは、従来のStackクラスよりも優先して使用する必要があります。

30
最もコンパクトなマッピングn→isprime(n)を制限Nまで作成する方法は?
当然、bool isprime(number)クエリできるデータ構造があるからです。範囲(1、N]のメモリ消費量が最も少ないデータ構造を生成するアルゴリズムである最適なアルゴリズム を定義します(ここでNは定数です。 私が探しているもののほんの一例:すべての奇数を表すことができます)たとえば、指定された範囲の数値(1、10)の1ビットで、3から始まります。1110 次の辞書はもっと絞れるでしょう?いくつかの作業で5の倍数を削除することもできますが、1、3、7、または9で終わる数字がビットの配列に存在する必要があります。 どうすれば問題を解決できますか?

5
set()はどのように実装されていますか?
私はset、PythonのオブジェクトにO(1)メンバーシップチェックがあると言われているのを見てきました。これを可能にするために内部でどのように実装されていますか?どのようなデータ構造を使用していますか?その実装には他にどのような影響がありますか? ここでのすべての答えは本当に啓発的でしたが、私は1つしか受け入れることができないため、元の質問に最も近い答えを使用します。情報ありがとうございました!

4
実際にフィボナッチヒープを効率的に実装した人はいますか?
あなたの誰かがフィボナッチヒープを実装したことがありますか?私は数年前にそうしましたが、配列ベースのBinHeapsを使用するよりも数桁遅くなりました。 当時、私はそれが研究が主張するほど必ずしも良いとは限らないということについての貴重な教訓だと思っていました。ただし、多くの研究論文では、フィボナッチヒープの使用に基づくアルゴリズムの実行時間を主張しています。 効率的な実装を実現できたことがありますか?または、フィボナッチヒープの方が効率的であるほど大きなデータセットを使用しましたか?もしそうなら、いくつかの詳細をいただければ幸いです。

11
初期容量でArrayListを開始するのはなぜですか?
の通常のコンストラクタArrayListは次のとおりです。 ArrayList<?> list = new ArrayList<>(); ただし、初期容量のパラメータを持つオーバーロードされたコンストラクタもあります。 ArrayList<?> list = new ArrayList<>(20); 必要にArrayList応じて追加できるのに、初期容量を持つを作成すると便利なのはなぜですか?

12
unordered_setの代わりにsetを使用するのはなぜですか?
C ++ 0xは、他の多くの場所でunordered_set利用可能なものを導入していますboost。私が理解しているのunordered_setは、O(1)ルックアップが複雑なハッシュテーブルです。一方、ルックアップが複雑なsetツリーにすぎませんlog(n)。なぜ誰もがset代わりに使うのunordered_setでしょうか?すなわち、setもはや必要性はありますか?


22
2つのキューを使用してスタックを実装する
同様の質問が以前にそこで行われましたが、ここでの質問は、2つのキューをスタックとして使用することとは逆です。質問... 彼らの標準的な操作で2つのキューを考えると(enqueue、dequeue、isempty、size)、その標準的な操作でスタックを実装(pop、push、isempty、size)。 ソリューションには2つのバージョンがあるはずです。 バージョンA:アイテムをプッシュする場合、スタックは効率的でなければなりません。そして バージョンB:アイテムをポップするとき、スタックは効率的でなければなりません。 特定の言語の実装よりもアルゴリズムに興味があります。ただし、私がよく知っている言語で表現されたソリューションを歓迎します(java、c#、python、vb、JavaScript、php)。

4
IGroupingの「Value」プロパティを取得します
私はのようなデータ構造を持っています public DespatchGroup(DateTime despatchDate, List<Products> products); そして私はやろうとしている... var list = new List<DespatchGroup>(); foreach (var group in dc.GetDespatchedProducts().GroupBy(i => i.DespatchDate)) { // group.Values is not correct... how do I write this? list.Add(new DespatchGroup(group.Key, group.Values); } IGroupingグループ内のデータレコードに実際にアクセスする方法がわからないので、私は明らかに理解していません。

11
Objective-Cには強く型付けされたコレクションはありますか?
Mac / iPhoneプログラミングとObjective-Cは初めてです。C#とJavaには、「ジェネリックス」と呼ばれるコレクションクラスがあり、そのメンバーは宣言された型のみにすることができます。たとえば、C#では Dictionary<int, MyCustomObject> MyCustomObjectタイプの整数と値のキーのみを含めることができます。Objective-Cにも同様のメカニズムはありますか?

12
バイナリサーチツリーの定義で重複キーは許可されていますか?
私は二分探索木の定義を見つけようとしています、そして私は至る所で異なる定義を見つけ続けています。 特定のサブツリーで、左の子キーはルート以下であると言う人もいます。 特定のサブツリーについて、正しい子キーはルート以上であると言う人もいます。 そして、私の古い大学のデータ構造の本は、「すべての要素にキーがあり、2つの要素が同じキーを持つことはない」と述べています。 bstの普遍的な定義はありますか?特に、同じキーの複数のインスタンスを持つツリーをどうするかに関して。 編集:多分私は不明瞭だったかもしれません、私が見ている定義は 1)左<=ルート<右 2)左<ルート<=右 3)左<ルート<右。重複するキーは存在しません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.