#include<stdio.h>
#include<stdlib.h>
typedef struct Node { // 定义的链表类型
int data;
struct Node *next;
}LNode , *Linklist;
void print(Linklist L){ //这是一个将链表数据输出的函数
Linklist tem=L;
while(tem->next !=NULL){
tem = tem->next;
printf("%d\n",tem->data);
}
}
void creat(Linklist &L){ // 头插法
L = (Linklist)malloc (sizeof(LNode));
Linklist p; //定义一个
L->next=NULL;
p= L->next;
int i,n;
printf("Input the node number:");
scanf("%d",&n);
for(i=0;i<n;i++){
p=(Linklist)malloc(sizeof(LNode));
scanf("%d",&p->data);
p->next = L->next;
L->next = p;
}
}
void tail(Linklist &L){
L= (Linklist)malloc(sizeof(LNode));
Linklist end,p;
L->next = NULL;
end= L;
int i,n;
printf("Input the LNode number:");
scanf("%d",&n);
for(i=0;i<n;i++){
p = (Linklist)malloc(sizeof(LNode));
scanf("%d",&p->data);
end->next = p;
end = p;
}
end->next = NULL;
}
void merge(Linklist &La,Linklist &Lb,Linklist &Lc ){
Linklist pa,pb,pc;
pa=La->next; pb=Lb->next;
Lc=pc=La;
while(pa&&pb){
if(pa->data<pb->data) {pc->next=pa;pc=pa;pa=pa->next;}
else {pc->next=pb;pc=pb;pb=pb->next;}
}
pc->next=pa?pa:pb;
free(Lb); // 链表中的合并元素
}
main(){
Linklist L= NULL;
creat(L);
print(L); //输出函数
}