これがランダムな質問のように思われる場合は申し訳ありませんが、私は 100,000 を超える名前と値のペア (必要に応じてハイスコアと呼んでください) のデータベースを、バランスのとれた二分探索木、AVL スタイルに格納しています。ほとんどの場合、スコアを一覧表示するために、BST をインオーダー トラバーサルまたはリバース オーダー トラバーサルで出力しますが、今日、ツリーをランダム (または疑似ランダム) 順序で出力する必要があることに気づきました。これを行うための受け入れられた、または最適な方法はありますか?すべてのノードに一度だけアクセスしますが、予測できない方法でアクセスしますか?
PS -- 幅優先トラバーサルについて考えましたが、それは常に同じように行われるため、実際にはランダムではありません。これは一般的な問題のように思われるため、何か賢い方法、または理想的なインタビューの答えが必要です。ノードを訪問済みとしてマークするか、外部追跡データ構造を作成する以外に、本当に賢いものは思いつきませんでした。