概述
已知两个排列递增的单链表A和B,编写算法将它们合并成一个链表C而不改变其排序性
#include <stdio.h>
#include <stdlib.h>
typedef struct node
{
int data;
struct node*next;
}Lnode,*Linklist;
Linklist init()
{
Lnode *s;
s=(Linklist)malloc(sizeof(Lnode));
s->data=0;
s->next=NULL;
return s;
}
Linklist creat()//输入时需满足是递增数列
{
Lnode *s,*r;
int x,flag=1;
Linklist L;
L=(Lnode *)malloc(sizeof(Lnode));//需开辟空间否则无法使数据存入进去
L->next=NULL;
r=L;
printf("please input the nums of tablen");
scanf("%d",&x);
while(flag)
{
s=(Linklist)malloc(sizeof(Lnode));
s->data=x;
s->next=NULL;
r->next=s;
r=s;
scanf("%d",&x);
if(x==-1)
flag=0;
}
return L;
}
Linklist result(Linklist A,Linklist B)//A,B含头结点
{
Lnode *p,*q,*s;
Linklist C;
p=A->next;q=B->next;//分别指向第一个结点
C=A;
s=C;
free(B);
while(p&&q)
{
if(p->data<q->data)
{
s->next=p;
s=p;
p=p->next;
}
else
{
s->next=q;
最后
以上就是外向月饼为你收集整理的数据结构单链表合并和取交集练习的全部内容,希望文章能够帮你解决数据结构单链表合并和取交集练习所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复