したがって、BinaryTree をトラバースしており、ノードに文字列が含まれているだけでなく、ファイルの読み取り中に文字列が複数回出現した場合も同様です。ファイルの読み取り中に最も多く出現した上位 10 語のみを探しているので、基本的には int 値を比較しているだけです。
私の問題は、カウント値が大きい場合に新しいノードを比較して挿入する効果的な方法を見つけようとしていることです。それで、私が木を持っているとしましょう...
5
/ \
3 10
/ \
1 15
配列のサイズが 3 しかないとします。配列は 5 まで空なので、1 から始めます。5 に達すると次のようになります...
[1]、[3]、[5]
10 に達すると、すべてよりも大きくなりますが、並べ替えておきたいので、3 を 1 に、5 を 3 に、10 を 5 にシフトする必要があります。これを行うためのより効果的な方法があるかどうかを知りたいです。数字が大きくなるたびにシフトします。10,000 ワード以上のテキスト ファイルを読み取るので、できるだけ高速にしたいと考えています。
別のデータ構造がこれに適している場合は、お知らせください。私はキューまたはリンクリストを考えていましたが、配列はサイズが10しかないため、無駄なスペースが少ないと考えました。私は学生なので、優しくしてください:-x.