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

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

16
基数システムに基づくアルゴリズム?[閉まっている]
現在のところ、この質問は私たちのQ&A形式には適していません。回答は事実、参考資料、または専門知識によって裏付けられることを期待していますが、この質問は、討論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善して再開できると思われる場合は、ヘルプセンターにアクセスしてガイダンスを入手してください。 8年前に閉鎖されました。 私は最近、創造的な基盤での数字の巧妙な使用に部分的または全体的に基づいた非常に多くのアルゴリズムがあることに気づきました。例えば: 二項ヒープは2進数に基づいており、より複雑なスキュー二項ヒープはスキュー2進数に基づいています。 辞書式順序の順列を生成するためのいくつかのアルゴリズムは、階乗進法に基づいています。 試行は、適切なベースについて、一度に1桁の文字列を見るツリーと考えることができます。 ハフマン符号化ツリーは、ツリーの各エッジが何らかのバイナリ表現で0または1を符号化するように設計されています。 フィボナッチ符号化は、フィボナッチ検索で使用され、特定のタイプの対数を反転します。 私の質問は、直感や証明の重要なステップとして巧妙な記数法を使用する他のアルゴリズムはありますか?。私はこのテーマについて話をまとめることを考えているので、私が引き出さなければならない例が多ければ多いほど良いです。

8
.NETにTree <T>クラスがないのはなぜですか?
.NETの基本クラスライブラリには、コレクション(リスト、キュー、スタック、辞書)の優れたデータ構造がいくつかありますが、奇妙なことに、バイナリツリーのデータ構造は含まれていません。これは、さまざまなトラバーサルパスを利用するアルゴリズムなど、特定のアルゴリズムにとって非常に便利な構造です。正しく書かれた無料の実装を探しています。 私は単に盲目で、それを見つけられません...それはBCLのどこかに埋もれていますか?そうでない場合、誰かがバイナリツリー用の無料またはオープンソースのC#/。NETライブラリを推奨できますか?できればジェネリックを採用しているもの。 編集:私が探しているものを明確にするために。内部でツリーを使用する順序付き辞書コレクションには興味がありません。私は実際にバイナリツリーに興味があります-サブツリーを抽出したり、ノードで修正後のトラバーサルを実行したりできるように、その構造を公開するものです。理想的には、このようなクラスを拡張して、特殊なツリー(つまり、赤/黒、AVL、バランスなど)の動作を提供できます。

1
さまざまなデータ構造の時間計算量はどのくらいですか?
配列、二分探索木、ヒープ、リンクリストなどの一般的なデータ構造の操作の時間計算量をリストしようとしています。特にJavaについて言及しています。それらは非常に一般的ですが、私たちの中には正確な答えに100%自信がない人もいると思います。どんな助け、特に参考文献も大歓迎です。 例:単一リンクリストの場合:内部要素の変更はO(1)です。どうすればいいですか?あなたはHAVEそれを変更する前に要素を検索します。また、Vectorの場合、内部要素の追加はO(n)として与えられます。しかし、なぜインデックスを使用して償却された一定時間でそれを行うことができないのですか?何か足りないものがあれば訂正してください。 私は最初の答えとして私の発見/推測を投稿しています。

5
バイト配列からのC#のC / C ++データ構造の読み取り
データがC / C ++構造体からのものであるbyte []配列からC#構造体を埋める最良の方法は何でしょうか?C構造体は次のようになります(私のCは非常に錆びています): typedef OldStuff { CHAR Name[8]; UInt32 User; CHAR Location[8]; UInt32 TimeStamp; UInt32 Sequence; CHAR Tracking[16]; CHAR Filler[12]; } そして、このようなものを埋めます: [StructLayout(LayoutKind.Explicit, Size = 56, Pack = 1)] public struct NewStuff { [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 8)] [FieldOffset(0)] public string Name; [MarshalAs(UnmanagedType.U4)] [FieldOffset(8)] public uint User; [MarshalAs(UnmanagedType.ByValTStr, SizeConst …

12
Javaでソートされた配列リスト
私はこれに対する迅速な答えを見つけることができないことに困惑しています。私は基本的に、java.util.Listインターフェイスを実装するが、そのメンバーをソートされた順序で格納するJavaのデータ構造を探しています。ノーマルArrayListを使用Collections.sort()して使用できることは知っていますが、リストからメンバーを追加したり、頻繁に取得したりするシナリオがあり、メンバーを取得するたびに並べ替える必要はありません。新しいものが追加されました。JDKやサードパーティのライブラリに存在するようなものを誰かに教えてもらえますか? 編集:データ構造は重複を保持する必要があります。 回答の要約:私はこれらすべてが非常に興味深く、多くのことを学びました。特にAioobeは、上記の要件(主に、重複をサポートするソートされたjava.util.List実装)を達成しようとする彼の忍耐力について言及する価値があります。私は彼の答えを私が尋ねたものに対して最も正確であり、私が尋ねたものが正確に私が必要としたものでなかったとしても、私が探していたものの意味を刺激するものとして最も考えました。 私が求めたものの問題は、リストインターフェイス自体とインターフェイスのオプションメソッドの概念にあります。javadocを引用するには: このインターフェイスのユーザーは、リストのどこに各要素を挿入するかを正確に制御できます。 ソートされたリストへの挿入では、挿入ポイントを正確に制御することはできません。次に、いくつかのメソッドをどのように処理するかを考える必要があります。テイクadd例えば: public boolean add(Object o) Appends the specified element to the end of this list (optional operation). これで、1)コントラクトを破り、addのソートされたバージョンを実装する2)addリストの最後に要素を追加し、ソートされた順序を破るという不快な状況に置かれます3)add(オプションとして)スローして除外しますUnsupportedOperationExceptionソート順に項目を追加する別の方法を実現します。 オプション3がおそらく最良ですが、使用できないaddメソッドと、インターフェイスにない別のsortedAddメソッドがあるのは不快だと思います。 その他の関連ソリューション(順不同): java.util.PriorityQueueは、おそらく私が要求したものよりも必要なものに最も近いものです。私の場合、キューはオブジェクトのコレクションの最も正確な定義ではありませんが、機能的には必要なすべてを実行します。 net.sourceforge.nite.util.SortedList。ただし、この実装は、add(Object obj)メソッドに並べ替えを実装することでListインターフェイスの契約を破り、奇妙なことに、の効果のないメソッドがありadd(int index, Object obj)ます。一般的なコンセンサスはthrow new UnsupportedOperationException()、このシナリオではより良い選択かもしれないことを示唆しています。 GuavaのTreeMultiSet重複をサポートするセットの実装 ca.odell.glazedlists.SortedList このクラスには、javadocに警告があります。Warning: This class breaks the contract required by List


6
キー/値ペアのJavascriptのオブジェクトと配列
非常に単純なデータ構造があるとします。 (personId, name) ...そして、これらの多くをjavascript変数に格納したいとします。私が見ているように、3つのオプションがあります。 // a single object var people = { 1 : 'Joe', 3 : 'Sam', 8 : 'Eve' }; // or, an array of objects var people = [ { id: 1, name: 'Joe'}, { id: 3, name: 'Sam'}, { id: 8, name: 'Eve'} ]; // or, …

4
mapとunordered_mapのどちらを選択するのですか?
文字列をキーとしてデータをマッピングしたいとします。どのコンテナを選択するmap必要がありunordered_mapますか?unordered_mapより多くのメモリを消費するので、メモリは問題ではなく、問題は速度であると仮定しましょう。 unordered_map一般に、O(n)の最悪の場合でO(1)の平均計算量を与えるはずです。どのような場合にO(n)に到達しますか?いつmapよりも時間効率が良くなりunordered_mapますか?nが小さいときに起こりますか? unordered_mapデフォルトのhaserVsでSTLを使用すると仮定します。地図。文字列がキーです。 毎回個々の要素にアクセスするのではなく、要素を反復処理する場合は、どちらを選択する必要がありmapますか?

9
赤黒木とAVL木の違い
これら2つのデータ構造の主な違いを誰かが説明できますか?相違点/類似点を強調するソースをオンラインで見つけようとしていますが、あまり有益なものは見つかりませんでした。どのような場合に一方が他方よりも優先されますか?どのような実際的な状況で、一方を他方よりも「使いやすく」しますか?


4
Linq-SelectManyの混乱
SelectManyのドキュメントから私が理解していることから、これを使用して1対多の関係の(フラット化された)シーケンスを生成できます。 以下のクラスがあります public class Customer { public int Id { get; set; } public string Name { get; set; } } class Order { public int Id { get; set; } public int CustomerId { get; set; } public string Description { get; set; } } 次に、次のようなクエリ式の構文を使用してそれらを使用しようとします。 var customers = …

9
ハッシュ可能、不変
最近のSOの質問(リストでインデックス付けされたPythonでの辞書の作成を参照)から、Pythonでのハッシュ可能オブジェクトと不変オブジェクトの意味について間違った概念を持っている可能性があることに気付きました。 実際のハッシュ可能とはどういう意味ですか? ハッシュ可能と不変の関係は何ですか? ハッシュ可能である可変オブジェクトまたはハッシュ可能ではない不変オブジェクトはありますか?


4
接尾辞木と試行。違いはなんですか?
私はTries一般にプレフィックスツリーとして知られているものについて読んでいSuffix Treesます。 のコードをTrie見つけましたが、の例が見つかりませんSuffix Tree。また、aをビルドするコードTrieは、aのコードと同じであるように感じますがSuffix Tree、前者の場合はプレフィックスを格納し、後者の場合はサフィックスを格納する点が異なります。 これは本当ですか?誰かが私の頭の中でこれをクリアするのを手伝ってくれる?サンプルコードは大いに役立ちます!


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