#pragma once namespace JTL // Jack's template library { template <typename T> void List<T>::merge(ListNodePosi(T)& p, int n, List<T>& L, ListNodePosi(T) q, int m) { ListNodePosi(T) pp = p->pred; while (0 < m) { if ((0 < n) && p->data <= q->data) { if (q == (p = p->succ)) { break; } n--; } else { insert_before(p, L.remove((q = q->succ)->pred)); m--; } } p = pp->succ; } };