双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

C++ 两个链表合并为第三个链表,并按顺序输出(求大虾指点!)

flyingfish flyingfish 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
#include <stdio.h>
#include <stdlib.h>

typedef struct LNode
{
char data;
struct LNode *next;
}Lnode,*LinkList;

void CreateList(LinkList &L,int n) {
L = (LinkList)malloc(sizeof(LNode));
LinkList p;
L->next = NULL;
for(int i = n; i >0; --i) {
p = (LinkList)malloc(sizeof(LNode));
scanf("%d",&p->data);
p->next = L->next; L->next = p;
}
}

void sortlist(LinkList &L1,LinkList &L2,LinkList &L3)
{
LinkList p1,p2,p3;
p1 = L1->next;
p2 = L2->next;
L3 = p3 = L1;
p3->next=NULL;
while(p1 && p2)
{
if(p1->data <= p2->data){
//p3->next = p1;
p3 = p1;
p1 = p1->next;

}
else
{
//p3->next = p2;
p3 = p2;
p2 = p2->next;

}
//p3->next = p1?p1:p2;

p3->next = L1->next;
L1->next=p3;
}

while(p1)
{
p3=p1;
p1=p1->next;
p3->next=L1->next;
L1->next=p3;
}
while(p2)
{
p3=p2;
p2=p2->next;
p3->next=L1->next;
L1->next=p3;
}

//return L3;
//free(L2);
}

int main()
{
LinkList p,q,l1,l2,l3,z;

CreateList(l1,3);
p = l1->next;
while(p)
{
printf("%d ",p->data);
p=p->next;
}
printf("\n");

CreateList(l2,5);
q = l2->next;
while(q)
{
printf("%d ",q->data);
q=q->next;
}
printf("\n");

sortlist(l1,l2,l3);

z = l3->next;
while(z)
{
printf("%d ",z->data);
z=z->next;
}

return 0;
}

为什么我这个没排序?
...全文

相关推荐

评论 11
收藏 已收藏
分享
返回顶部
flyingfish
C++ 语言 65,214 成员 250,514 内容