問題タブ [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.
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 が見つかりませんでした..わかりません..
誰でも私を解決策に導くことができます..?
前もって感謝します :)
java - avl ツリー ローテーション
ツリーが不均衡になるたびに自分自身を更新する avl ツリーを実行しようとしています。ローテーションは機能していますが、たとえば、ツリー ノード 7、leftChild 6、leftchild 5 の leftchild がノード 6、leftchild 5、rightchild 7 になり、バランスを取った後、新しいノードを追加すると、ノードが最初に比較されるというバグがあります。 6 ではなく 7 です。この問題を解決するにはどうすればよいですか?
これはメインクラスです:
これは通常の Java クラスからのものです。
data-structures - AVLツリーと2-3ツリー間の優先順位
2〜3ツリーを使用するよりもAVLを使用する方が好ましいのか、またはその逆であるのか、誰かに教えてもらえますか?その理由は何ですか?
どうも
c# - .NET 組み込みの AVL ツリー?
.NET ライブラリに組み込みの AVL ツリーはありますか?
私は検索しましたが、何も見つかりませんでした。
- あるとすれば、どこに?何の名前空間?
- そうでない場合、C# での AVL ツリーの適切な実装はありますか?
- そうでない場合も!それを成し遂げる簡単な方法はありますか?私はそれがどのように機能するかを知っており、以前にネイティブ C++ で作成したことがありますが、今は時間がなく、自分で作成するとパフォーマンスが低下するのではないかと心配しています。
performance - AVLツリーがハッシュテーブルよりも優れているのはいつですか?
具体的には、ハッシュテーブルではなくAVLツリーを使用した方が効率的に実行できる操作はありますか?
java - AVLツリーの順序トラバーサルが機能していません
私のAVLツリーは、整数の2次元配列を使用してJavaで実装されていますavlTree[35][5]
-列は次のことを表しています。
- [0]-左の高さ
- [1]-左の子
- [2]-データ
- [3]-右の子
- [4]-右の高さ。
メインプログラムから次のメソッドを呼び出しています。その結果、3つのノードが取得されます。左端のノードの後に親が2回続きます。
algorithm - 可能な限り偏ったAVLツリーを生成する方法は?
私はこれをいくつかの論文で見ましたが、AVLツリーのノードを削除すると最大でlog(n)回のローテーションが発生する可能性があると誰かが主張しました。これは、可能な限り偏ったAVLツリーを生成することで実現できると思います。問題はこれをどのように行うかです。これは、除去ローテーションのことを研究するのに大いに役立ちます。どうもありがとう!
c++ - AVL は後継者を見つけます
これは私の後継機能です:
インストラクターがランダムなデータで満たされたファイルをくれました。このすべてのデータをツリーに配置すると、挿入メソッドが機能しますが、削除メソッドが開始されると、ある時点で後続関数が後続を探しているノードと同じ値を返します。これは正しく起こるべきではありませんか?私の後継関数は正しいですか?削除方法を見たい場合は、それを言及してください。
algorithm - n AVL ツリーのマージ
sum(n_i)=n となるように、サイズ n_1、n_2、...、n_n の n 個の AVL ツリーがあります。大きい方のサイズの線形時間で 2 つの AVL をマージできます。これらの n 個の木をどれくらいの時間でマージできますか? 助けてくれてありがとう
c++ - AVL ツリーの実装
ここに AvlTree 実装のコードがありますが、実行時にエラーが 1 つあります。実行時エラーと表示されます。ここにあります