• 締切済み

優先度付き待ち行列について

優先度付き待ち行列を連結リストやヒープ以外で効率よく実現する方法を教えてください。 平衡木については考えてみたんですが平衡木は探索までできて良いのですが優先度付き待ち行列を扱うにはもったいな過ぎて能率が悪いようです。

みんなの回答

  • noocyte
  • ベストアンサー率58% (171/291)
回答No.2

・方法1  速度を追求するなら,優先度を添字とする待ち行列 (連結リストなど) の配列で実現する. ・方法2  可能な優先度の範囲が広く,同時に使用する優先度の数が少なければ,優先度を平衡木や  桁探索木 (トライや PATRICIA) などで管理し,その葉 (個別の優先度) に待ち行列  (連結リストなど) を持たせる.  木の作り直しが頻繁に起きないようにするため,ある優先度の要素が存在しなくなっても  すぐにその優先度を木から削除することはせず,一定時間経ってから削除する. というのはどうでしょう?

回答No.1

「効率よく」とは? 時間計算量? 空間計算量? コードサイズ? 開発時間? 優先順位を表す値が数個程度であればその個数分のキューを用意するのがよさそうですが。

関連するQ&A