問題タブ [ternary-tree]
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.
algorithm - 三分探索があるのになぜ二分探索を使うのですか?
最近、配列を3つの部分に分割して比較する3値検索について聞いたことがあります。ここでは2つの比較がありますが、配列はn/3に減少します。どうしてこんなに使わないの?
algorithm - 三分探索木のバランスをとる
三分探索木の「バランスをとる」にはどうすればよいでしょうか。ほとんどのtst実装はバランシングに対応していませんが、最適な順序で挿入することをお勧めします(これは制御できません)。
c++ - 三分探索木
文字列を使用して単語のシーケンスを追加すると、セグメントadd()
内に印刷され
if(t==NULL)
ますが、ツリーが形成されません。つまり、ノードがリンクされません。
c++ - エラー: 不完全なクラス型へのポインタは許可されていません
三分木を実装している間、私はこのステップで困惑しています:
マウス アイコンを の近くに移動するp
と、赤い色とエラーが表示されます。
私の質問は、不完全なクラスとは正確には何ですか? 助けてください、ありがとう。
c++ - 三分探索木内でワイルドカードを検索する (使用しない)
「三分探索木」ライブラリ ( sourceforge & http://code.google.com/p/ternary-search-tree/ )から再帰関数を変更したい。デフォルトの動作では、指定されたワイルドカード文字列に一致するすべての文字列を三分検索ツリーで検索します。つまり、ツリーに 'KEY'、'KE1'、'KE2' があると、'KE*' を検索するとすべてのエントリが見つかります。しかし、逆の動作が必要です。指定された文字列に一致するすべてのエントリを (ワイルドカードを含む) 三分探索ツリーで検索します。つまり、ツリーに 'KE*'、'KEY'、'K*' があると、'KEY' を検索するとすべてのエントリが見つかるはずです。
ツリー/ノードは次のように定義されます。
そして、デフォルトの動作を持つ関数:
pmVectorPtr は int の Vector への Pointer であり、関数 get は root-element と searchkey を引数として呼び出されます。私はすでにそれを適応させようとしましたが、まだ理解できていません。私自身のコード:
私はこれをデバッガを広範囲に使用してコーディングしましたが、私が知る限り、動作するように見えます (ワイルドカードが文字列の先頭または途中にある場合でも)。しかし、例に「K*」と「Ke*」を追加すると、「Key」のソリューション (この場合は Ke*) が 1 つしか見つかりません。ツリーから 'Ke*' を削除すると、'Key' の検索クエリに対して 'K*' が見つかります。理由はまだわかりません。
それについてのアイデアはありますか?
付録(私のテストケース):
c++ - エラーを与える三分木
これは単純な三分木構造です。コードを正しく記述しましたが、実行中にしばらくすると次のように表示されます。
申し訳ありませんが、ternary.exe が動作を停止しました。
このエラーの原因を教えてください。
c++ - if( ! node->next ) をチェックするとき、node->next =0x4 は NULL にする必要があります
だから私は三分木を書いていて、おそらく20回の挿入後にセグフォルトが発生します。GDB で問題を特定すると、今まで見たことのない非常に奇妙なエラーが発生します。
以下のコードのステートメントでは、より大きなノードは別のノードであり、そのノードは NULL (または別のノード) である必要がありますが、GDB にいてその値をチェックすると、*tempNode->0x4 を取得します。これにより、コードはより大きな値を設定しようとします ( 0x4) を現在のノードとして使用し、セグ フォールトを発生させます。
GDB の出力は次のとおりです。 (gdb) p *tempNode->greater Cannot access memory at address 0x4
何時間も立ち往生しています、何かアイデアはありますか?