template class leftistheap publicleftistheap)leftistheapconst leftistheap rhs )leftistheapleftistheap &rhs )~leftistheap)leftistheap operator=const leftistheap rhs )leftistheap operator=leftistheap &rhs )bool isemptyconstconst comparable findminconstvoid insertconst comparable )void insertcomparable & )void deletemin)void deletemincomparable minitem )void makeempty)void mergeleftistheap rhs )privatestruct leftistnode comparable elementleftistnode *leftleftistnode *rightint nplleftistnodeconst comparable eleftistnode *lt nullptrleftistnode *rt nullptrint np elemente }leftlt }rightrt }nplnp leftistnodecomparable &eleftistnode *lt nullptrleftistnode *rt nullptrint np elementstd::movee }leftlt }rightrt }nplnp }leftistnode *rootleftistnode mergeleftistnode * leftistnode * )leftistnode merge leftistnode * leftistnode * )void swapchildrenleftistnode * )void reclaimmemoryleftistnode * )leftistnode cloneleftistnode * const}figure leftist heap type declarations