問題タブ [avl-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 投票する
1 に答える
5704 参照

java - AVL ツリー トラバーサル、検索の問題

AVL ツリーの実装にいくつか問題があります。すべてのローテーションとすべての追加のコードは正しいようです。プログラムをドライランして、論理的に正しく実行されていることを徹底的に確認します。想定される 100 からいくつかの整数しか出力しないため、ツリー トラバーサル (順序どおり) に問題があるようです。また、入力内容に関係なく、検索は常に失敗します。何が起こっているのか理解できないようですが、いくつかの null ポインターと関係があると思われます。以下は、AVL ツリーのコードです。AddNode メソッドまたは回転メソッドに間違ったコードがあるかどうか疑問に思っていますが、問題ないようです。クラスは、Node クラス、AVL クラス、およびメイン クラスである AVL ツリー クラスです。 .

ノードクラス

AVLクラス

メインクラス

トラバーサルの出力は次のとおりです。

トラバーサル: 44 53 54 54 77

100 個の整数が入力され、その中にこれらがあったとします。しかし、トラバーサルの出力はこれだけでした。

検索の出力は次のようになります: Choice: 4 検索する整数を入力してください: 44 Item found! 44

選択肢: 4 検索する整数を入力してください: 100 検索に失敗しました! 0

100 と 44 はどちらもツリーに追加された整数ですが、44 が見つかり、100 が見つかりませんでした..わかりません..

誰でも私を解決策に導くことができます..?

前もって感謝します :)

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

java - avl ツリー ローテーション

ツリーが不均衡になるたびに自分自身を更新する avl ツリーを実行しようとしています。ローテーションは機能していますが、たとえば、ツリー ノード 7、leftChild 6、leftchild 5 の leftchild がノード 6、leftchild 5、rightchild 7 になり、バランスを取った後、新しいノードを追加すると、ノードが最初に比較されるというバグがあります。 6 ではなく 7 です。この問題を解決するにはどうすればよいですか?

これはメインクラスです:

これは通常の Java クラスからのものです。

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

data-structures - AVLツリーと2-3ツリー間の優先順位

2〜3ツリーを使用するよりもAVLを使用する方が好ましいのか、またはその逆であるのか、誰かに教えてもらえますか?その理由は何ですか?

どうも

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

c# - .NET 組み込みの AVL ツリー?

.NET ライブラリに組み込みの AVL ツリーはありますか?

私は検索しましたが、何も見つかりませんでした。

  • あるとすれば、どこに?何の名前空間?
  • そうでない場合、C# での AVL ツリーの適切な実装はありますか?
  • そうでない場合も!それを成し遂げる簡単な方法はありますか?私はそれがどのように機能するかを知っており、以前にネイティブ C++ で作成したことがありますが、今は時間がなく、自分で作成するとパフォーマンスが低下するのではないかと心配しています。
0 投票する
2 に答える
8889 参照

performance - AVLツリーがハッシュテーブルよりも優れているのはいつですか?

具体的には、ハッシュテーブルではなくAVLツリーを使用した方が効率的に実行できる操作はありますか?

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

java - AVLツリーの順序トラバーサルが機能していません

私のAVLツリーは、整数の2次元配列を使用してJavaで実装されていますavlTree[35][5]-列は次のことを表しています。

  • [0]-左の高さ
  • [1]-左の子
  • [2]-データ
  • [3]-右の子
  • [4]-右の高さ。

メインプログラムから次のメソッドを呼び出しています。その結果、3つのノードが取得されます。左端のノードの後に​​親が2回続きます。

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

algorithm - 可能な限り偏ったAVLツリーを生成する方法は?

私はこれをいくつかの論文で見ましたが、AVLツリーのノードを削除すると最大でlog(n)回のローテーションが発生する可能性があると誰かが主張しました。これは、可能な限り偏ったAVLツリーを生成することで実現できると思います。問題はこれをどのように行うかです。これは、除去ローテーションのことを研究するのに大いに役立ちます。どうもありがとう!

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

c++ - AVL は後継者を見つけます

これは私の後継機能です:

インストラクターがランダムなデータで満たされたファイルをくれました。このすべてのデータをツリーに配置すると、挿入メソッドが機能しますが、削除メソッドが開始されると、ある時点で後続関数が後続を探しているノードと同じ値を返します。これは正しく起こるべきではありませんか?私の後継関数は正しいですか?削除方法を見たい場合は、それを言及してください。

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

algorithm - n AVL ツリーのマージ

sum(n_i)=n となるように、サイズ n_1、n_2、...、n_n の n 個の AVL ツリーがあります。大きい方のサイズの線形時間で 2 つの AVL をマージできます。これらの n 個の木をどれくらいの時間でマージできますか? 助けてくれてありがとう

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

c++ - AVL ツリーの実装

ここに AvlTree 実装のコードがありますが、実行時にエラーが 1 つあります。実行時エラーと表示されます。ここにあります