考研进行时——今天的任务是完成两个有序单链表的合并。不多说,贴代码:
#include<stdio.h>
#include<stdlib.h>
typedef struct LNode
{
int data;
struct LNode *next; //指针域
}*LNode;
/*LNode HeadCreatList (LNode L) //头插法建立链表
{
LNode s;
int i;
L->next=NULL;
for ( i=1;i<10;i+=2)
{
s=(LNode)malloc(sizeof(LNode));
s->data=i;
s->next=L->next; //将L指向的地址赋值给S;
L->next=s;
}
return L;
}*/
LNode TailCreatList(LNode L,int i) //尾插法建立链表
{
LNode s,r;
r=L;
for ( i;i<=10;i+=2)
{
s=(LNode)malloc(sizeof(LNode));
s->data=i;
r->next=s;
r=s;
}
r->next=NULL;
return L;
}
LNode MergeList(LNode L1,LNode L2,LNode L3){
LNode s1,s2,t;
t=L3;
s1=L1->next;//指向L1的第一个结点
s2=L2->next;//指向L2的第一个结点
while(s1&&s2)
{
if(s1->data<=s2->data) //比较结点数据域的大小