二分探索木 (BST) とランダム化された BST を作成しています。これらの作業の両方に対する私の方法はすべて機能し、私はより単純だと感じるものにこだわっています。失敗しているコードは非常に単純です。余談ですが、私は標準のリダイレクトを使用して値を読み取るので、一度に 1 つずつではなく、一度に多くの値を入力します。
while ( console.hasNextInt() ) {
key = console.nextInt();
System.out.println(key);
head.remove( key );
}
ここで、console はスキャナーの名前で、key はツリーのキーを読み込むために使用されるグローバル変数です。デバッグは、最後の整数が読み取られるまでループを正しく通過することを示しています。その後、読み取る整数がなくなったにもかかわらず、while ループに再び入るように見えます。私は明らかにどこかで間違いを犯していますが、それは私には明らかではなく、これを無駄に言い換えようとして数時間を費やしました. どんな助けでも大歓迎です。
編集 - 私が入力しているものの例は次のとおりです。
820426496 648711744 834882112 261937632 475255968 311993216 834882112
834882112 までのすべての数値を読み取り、while ループに戻りますが、その理由はわかりません。
コードに関する限り、これはまさに混乱しているコードです。他のすべては、スキャナーのセットアップなどです。