📄 fig06_52.cpp
字号:
template <typename Comparable>
class BinomialQueue
{
public:
BinomialQueue( );
BinomialQueue( const Comparable & item );
BinomialQueue( const BinomialQueue & rhs );
~BinomialQueue( );
bool isEmpty( ) const;
const Comparable & findMin( ) const;
void insert( const Comparable & x );
void deleteMin( );
void deleteMin( Comparable & minItem );
void makeEmpty( );
void merge( BinomialQueue & rhs );
const BinomialQueue & operator= ( const BinomialQueue & rhs );
private:
struct BinomialNode
{
Comparable element;
BinomialNode *leftChild;
BinomialNode *nextSibling;
BinomialNode( const Comparable & theElement,
BinomialNode *lt, BinomialNode *rt )
: element( theElement ), leftChild( lt ), nextSibling( rt ) { }
};
enum { DEFAULT_TREES = 1 };
int currentSize; // Number of items in priority queue
vector<BinomialNode *> theTrees; // An array of tree roots
int findMinIndex( ) const;
int capacity( ) const;
BinomialNode * combineTrees( BinomialNode *t1, BinomialNode *t2 );
void makeEmpty( BinomialNode * & t );
BinomialNode * clone( BinomialNode *t ) const;
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -