数据结构的问题,将两个单链表有顺序地合成一个单链表。

2024-11-25 06:33:23
推荐回答(1个)
回答1:

struct node
{
int data;
struct node *next;
}
void sort(struct node *p1,*p2)
{
struct node *q1, *q2;
struce node *r; //r为结果链表

q1=p1;
q2=p2;
r=null;

while((q1!=null) && (q2!=null))//当两表都有结点未处理完时,需要比较后插入。
if(q2.data {
p2=p2.next;
q2.next=r;
r=q2;
q2=p2;
}
else//插入第1表的元素,允许一样大。
{
p1=p1.next;
q1.next=r;
r=q1;
q1=p1;
}

while(q1!=null)//如果是表1未完,它的剩余结点倒序插入。
{
p1=p1.next;
q1.next=r;
r=q1;
q1=p1;
}
while(q2!=null)
{
p2=p2.next;
q2.next=r;
r=q2;
q2=p2;
}
return(r);
}