問題タブ [multiway-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.

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

f# - f# でのマルチウェイ ツリーのフォールド/再帰

マルチウェイ ツリーに適用するために、Brian's Fold をバイナリ ツリー ( http://lorgonblog.wordpress.com/2008/04/06/catamorphisms-part-two/ ) に適用しようとしています。

Brian のブログからの要約:

データ構造:

二分木折り関数

マルチウェイ ツリー バージョン [(完全に) 動作していません] :

データ構造

折り機能

例 1 28 を返します - 動作しているようです

例 2

実行されません

最初はどこかにMFoldTree必要だと思っていましたが、代わりにオペレーターと連携するようになりました。map.something@

2 番目の例に関するヘルプや、MFoldTree関数で行ったことの修正は素晴らしいことです。

乾杯

デュシオド

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

tree - OCaml における多元木の最大値

私は IT 学生で、OCaml の初心者です。

最近、試験勉強をしていてこのエクササイズを見つけました。

指定: type 'a tree = Tree of 'a * 'a tree list

関数 mtree を定義します: 'a tree ->'a は、OCaml の通常の順序関係 (<=) に従って、多方向ツリー内のすべてのノードの最大値を返します。

私は以下のようなことをするようになりましたが、もちろんうまくいきません。

これに対する回答を読んだ後、修正コードを投稿しています。

アイデアは同じです。ローカル関数を使用してノードを比較してリストを折り畳み、連続したレベルのノード リストで関数自体を呼び出してツリーを移動します。

ただし、まだ機能していません。fold_left 部分の max_node について不平を言うようになりました。

そして、ここで私は間違いなく道に迷っています。

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

ada - Ada 2012 マルチウェイ ツリー、ルート ノードの作成

マルチウェイ ツリーの制限付きバージョンを使用しています。要素タイプを作成し、タイプのツリーをインスタンス化できますが、ルートを作成するにはどうすればよいですか? Insert_Child にはいくつかの形式があります。Parent または Before 引数に No_Element を使用しているため、Insert_Child を使用しようとするとすべて失敗します。

彼らが私に指摘できるマルチウェイツリーパッケージの使用例はありますか?

問題があれば、無料の Gnat バージョンの Ada を使用しています。

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

map - マルチウェイ ツリーのトリム - より良い解決策は何ですか?

次の問題について、より単純化された解決策やコードの改善を誰かが提供できるかどうか疑問に思っていました。

ある深さ"d"に向かう枝を持つ木があるとします。そして、深さ d の"n"枝と深さd -1の別の n 枝を保持するように、この木をトリミングしたいとします。次に、 d-2で別のn分岐など...

私の解決策dictionaryでは、枝の数を追跡し、refを追跡して深さレベルを下げるために、に頼る必要がありました。

よりシンプルでエレガントなソリューション、または私が持っているものを改善するためのヒント/ヒントを知りたい

データ構造

テスト ツリー

トリムツリー機能

結果

Thomas P の「printTree」関数を使用すると、これがうまく視覚化されます

出力 -

出力 -

ここまで来たら、何かアドバイスはありますか?

乾杯!

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

java - b ツリーの充足度 (パーセンテージ)

私は現在、Java でB ツリーを実装するのに忙しいです。メソッドの 1 つは、完全なツリー全体のパーセンテージとして返す必要があります。パーセンテージは 100 未満である必要があり、たとえば 50 が返された場合は、ツリーが 50% 埋まっていることを意味します。空のツリーは 0% 埋まっています。

ここに私が取り組んでいるノードクラスがあります

要約するには:次の方法を実装するのを手伝ってください:

提案、ヘルプ、および/またはコードをいただければ幸いです。

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

java - 「単純な」トライの実装

大学のプロジェクトでTrie (Java)を実装する必要があります。Trie は文字列を追加および削除できる必要があります (フェーズ 1 の場合)。

私はこれを行う方法を理解しようとして毎日(ここ数日間)数時間を費やしてきましたが、毎回惨めに失敗しました。

インターネット上の例と私の教科書 (Adam Drozdek による Java のデータ構造とアルゴリズム) は役に立ちません。

情報

  1. 私が使用しているノードクラス:

    /li>
  2. そして、ここに私が従う必要がある挿入の疑似コードがあります:(非常にあいまいであることを警告します)

    /li>
  3. 次のメソッドを実装する必要があります。

    /li>
  4. 削除の疑似コードが見つかりませんが、挿入が機能しない場合、削除は役に立ちません。

  5. これは、実装する必要がある Trie がどのように見えるかのイメージです。

ここに画像の説明を入力

  1. このように実装した場合、トライがまだ非効率になることは承知していますが、現時点では心配する必要はありません。

  2. この本は、私がする必要があることと同様の実装を提供しますが、単語の終わりの文字 (「$」) を使用せず、接頭辞なしで子ノードに単語を格納するだけですhttp://mathcs.duq.edu/drozdek/DSinJava/SpellCheck.java

制約

  1. Java でトライを実装する必要があります。
  2. Java の組み込みデータ構造をインポートまたは使用することはできません。(つまり、Map、HashMap、ArrayList などはありません)
  3. 配列、Java プリミティブ型、および Java 文字列を使用する場合があります。
  4. Trie は$、単語の終わりを示すために (ドル) 記号を使用する必要があります。(下の画像を参照)

ここに画像の説明を入力

  1. 記号を含む単語$が挿入されると思います。
  2. 本と同じスタイルで Trie it を実装する必要があります。
  3. 単語の大文字と小文字は関係ありません。すべての単語は小文字と見なされます
  4. トライは、単語の終わりの文字と単語に適用可能な文字のみを格納する必要があり、アルファベット全体ではありません (一部の実装のように)。

私は誰かが私のために実装を行うことを期待していません (彼らが横たわっていない限り:P) 私は本当に助けが必要です.

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

c - 子の多元木メモリ割り当て

C で多方向ツリーを構築しようとしています。子の割り当てメモリに行き詰まっています。各ノードの父親を含むベクトルがあります。これが私のコードです:

NODE の構造は次のとおりです。

問題がメモリ割り当てにあるかどうかは正確にはわかりません。私の論理では、うまくいくはずです。