主题:用头插法合并两个有序的单链表
小逗逗儿
[专家分:0] 发布于 2010-03-25 10:47:00
用头插法合并两个有序的单链表
回复列表 (共2个回复)
沙发
雪光风剑 [专家分:27190] 发布于 2010-03-26 08:03:00
想问什么呢?如果想要代码,貌似baidu直达
板凳
sidtoy [专家分:170] 发布于 2010-03-26 17:27:00
严蔚敏老师的书的第二章上就有,感觉那个实现还比较优雅,下面是伪代码,没太检查,你可以看看思想,和书上差不多:
llist
merge_lists(llist l1, llist l2)
{
node *lap, *lbp, *lcp;
lap = l1->next; lbp = l2->next; lcp = l1;
while (lap && lbp) {
if (lap->data <= lbp->data) {
lcp->next = lap; lcp = lap; lap = lap->next;
}
else {
lcp->next = lbp; lcp = lbp; lbp = lbp->next;
}
}
lcp->next = (lap ? lap : lbp); /* 这句很精妙 */
return l1;
}
我来回复