******** fig6.54 ********** /* Merge two equal-sized binomial trees */ tree_ptr merge_tree( tree_ptr T1, tree_ptr T2 ) { if( T1->element > T2->element ) return merge_tree( T2, T1 ); if( T1->rank++ == 0 ) T1->f_child = T2; else { T2->l_sib = T1->f_child->l_sib; T2->l_sib->r_sib = T2; T1->f_child->l_sib = T2; } return T1; }