fig06_52.cpp
来自「经典书籍源代码啊。。。第三版。。。数据结构与算法分析——C++描述(第3版).」· C++ 代码 · 共 45 行
CPP
45 行
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 + =
减小字号Ctrl + -
显示快捷键?