作业帮 > 综合 > 作业

设ha=(a1,a2,.,an)和(hb=(b1,b2,.,bm)是两个带头结点的循环单链表

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/08 09:53:29
设ha=(a1,a2,.,an)和(hb=(b1,b2,.,bm)是两个带头结点的循环单链表
编写将这两个表合并为带头结点的循环单链表hc的算法.
/////////////////////////////////////////////////////////////
// 循环单链表的合并
// 作者:悉雨辰寂
// 时间:2008年4月4日
// 说明: 循环单链表的合并/////////////////////////////////////////////////////////////
#include
//结点
struct listNode
{
int data;
node* next;
}node;
node *ha, *hb,*hc;
////////////////////////////////////////////////////////////
//创建链表
node* create(int t)
{
int i=1;
node *head,*p,*r;
head=new node;
p=head;
p->next=head;
while(idata=i;
r->next=head;
p->next=r;
p=r;
i++;
}
return head;
}
////////////////////////////////////////////////////////////
//合并链表
node* merge(node* ha,node* hb)
{
node *head,*p;
head = new node;
head->next=ha->next;
for(p=ha->next;p->next!=ha;p=p->next);
p->next=hb->next;
for(;p->next!=hb;p=p->next);
p->next=hc;
delete ha;
delete hb;
return head;
}
//////////////////////////////////////////////
//打印链表
void print(node *p)
{
p=p->next;
cout