template class binomialqueue publicbinomialqueue)binomialqueueconst comparable item )binomialqueueconst binomialqueue rhs )binomialqueuebinomialqueue &rhs )~binomialqueue)binomialqueue operator=const binomialqueue rhs )binomialqueue operator=binomialqueue &rhs )bool isemptyconstconst comparable findminconstvoid insertconst comparable )void insertcomparable & )void deletemin)void deletemincomparable minitem )void makeempty)void mergebinomialqueue rhs )privatestruct binomialnode comparable elementbinomialnode *leftchildbinomialnode *nextsiblingbinomialnodeconst comparable ebinomialnode *ltbinomialnode *rt elemente }leftchildlt }nextsiblingrt binomialnodecomparable &ebinomialnode *ltbinomialnode *rt elementstd::movee }leftchildlt }nextsiblingrt }const static int default_trees vector thetreesint currentsize/an array of tree roots /number of items in the priority queue int findminindexconstint capacityconstbinomialnode combinetreesbinomialnode * binomialnode * )void makeemptybinomialnode )binomialnode clonebinomialnode const}figure binomial queue class interface and node definition