两个有序链表的合并问题
来源:互联网 发布:java负载均衡框架 编辑:程序博客网 时间:2024/05/16 09:07
思想:首先在输入的两个链表头节点选择较小的那个成为新表的头结点,之后在两表中选择较小的节点成为新表的下一个节点,并改变新表指向,即插入运算。最后当某一个表遍历结束而另一个没有结束时直接将剩余的节点插入新表即可。
void merge(Node* p1, Node* p2, Node*& head) //p1,p2分别是两个有序链表的表头,head是归并后新链表的表头
{
if(p1->v <= p2->v)
{ head = p1; p1 = p1->next;}
else {head = p2; p2 = p2->next;}
Node* t = head;
while(p1!= NULL || p2!= NULL)
{
if(p1->v <= p2->v)
{ t->next = p1; p1 = p1->next;t = t->next;}
else {t->next = p2; p2 = p2->next; t= t->next;}
if(p1 == NULL)
{t->next = p2; break;}
else if(p2 == NULL)
{t->next = p1; break;}
}
}
当有多个有序链表需要合并时,首先可以采用上述的方法,其次也可以两两合并,最终合并成一个链表。
- 两个有序链表的合并问题
- 有序的合并两个有序链表
- 问题:合并两个有序链表,合并以后的链表依旧有序。
- 链表问题---合并两个有序的单链表
- 合并两个有序链表的算法
- 实现两个有序链表的合并
- 合并两个有序的链表
- 算法:两个有序链表的合并
- 合并两个有序的链表
- 合并两个有序的链表
- 两个有序链表的合并
- 合并两个有序的链表
- 两个有序单向链表的合并
- 实现两个有序链表的合并
- 合并两个有序的链表
- 合并两个有序的链表
- 链表------两个有序链表的合并
- 两个有序链表序列的合并
- 初次发表博客
- 怎样才可以让AUTORUN文件在光盘里强制执行!!
- 条款03:尽可能使用const
- 【Struts1.2总结】struts-config.xml配置
- 链接不上的必应——第二个Google还是性能问题
- 两个有序链表的合并问题
- IPV6协议
- smarty的保留变量
- oracle 三种连接身份的含义
- 虚函数
- msdn无法打开主页msdnstart.htm的解决办法
- HttpServletRequest
- 22条经典的编程引言
- 捷图书排行Top 20