link merge_sort(link t)
{
queue<link> que;
if (0 == t || 0 == t->p_next) return t;
for (link u = 0; t!=0; t=u)
{
u = t->p_next;
t->p_next = 0;
que.push(t);
}
t = que.front();que.pop();
while (!que.empty()) // is flexiable
{
que.push(t);
link a = que.front();que.pop();
link b = que.front();que.pop();
t = merge_list(a, b);
}
return t;
}
自底向上归并,链表
最新推荐文章于 2024-11-07 23:13:27 发布