2017-06-29 8 views
-2

私はプロジェクトを作成する必要があります:バイナリ検索ツリーで表される優先度キュー。私のアルゴリズムクラスです。バイナリ検索ツリーをどのように優先度キューとして使用するかはわかりません。私がインターネット上で見つけたすべての例は、ヒープに関するものであり、 "決してあなたがBSTで優先キューを実装する必要はありませんが、ヒープでのみ実装してください"。誰かが私に何を正確に説明すべきか説明できましたか?ありがとう!BinarySearchTreeを使用してPriorityQueueを実装する:C++

+0

あなたが既にこの課題に苦労している場合は、教授またはその助手と議論する必要があります。 –

+0

すべてのノードが必ずヒーププロパティ(ノードの値はどの子の値よりも大きくない)に従うようにすることで、*バイナリツリー*(*検索*が意図的に存在しないことに注意)に優先度キューを実装できます。このアプローチは、実際には任意のアリティのツリーで動作します。ヒープの場合、ツリーがツリーノードを使用して表現されているか、配列内に暗黙的に与えられたツリーを使用して表現されているかどうかは関係ありません。 –

答えて

0

ヒントとして、優先度キューは要素の挿入、最小値(または最大優先度キューの最大値)の読み取り、最小値の削除を効率的にサポートする必要があります。 BSTはすでに高速挿入と削除をサポートしています。したがって、優先順位キューのすべての要素がBSTに格納されている場合、どのように最小値を見つけることができますか? BSTがその要素をソートされた順序で格納するという事実を利用して、最小の値を見つけるための非常に速いアルゴリズムを見つけることができるかどうかを見てください。

関連する問題