#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);? //輸出函數
}