私は常に、ヒープと優先度キューは同義語であると考えていました- insert
、findMin
およびdeleteMin
操作をサポートする抽象的なデータ構造。
たとえば、Chris OkasakiのPurely Functional Data Structures(第3章)など、いくつかの文献が私と一致しているようです。
一方、ウィキペディアのヒープページでは、ツリーベースのデータ構造として定義されており、ヒープは優先キューの具体的な実装であると述べています。
私は、これを複数のヒープ実装(左翼ヒープ、二項ヒープ、スプレイヒープ)を考えることができるという事実と調和させるのに苦労しています...
ヒープを異なるデータ構造で実装できるという単純な事実は、定義により、それが抽象データ構造であることを意味しませんか?そして、その場合、優先度キューと実際の違いはありますか?