《数据结构实验二两个循环链表合并成一个循环链表》由会员分享,可在线阅读,更多相关《数据结构实验二两个循环链表合并成一个循环链表(2页珍藏版)》请在金锄头文库上搜索。
1、数据结构上机实验二实验报告实验题目:两个有序循环链表合并成一个有序循环链表源程序:#include #include typedef struct Doublelikedlist int data; struct Doublelikedlist *prior; struct Doublelikedlist *next;Doublelikedlist,*Doulinklist;Doulinklist Creatlist_L(int n) Doulinklist L,p; int i;printf(n正在创建双向链表,请输入%d个数字以创建此链表n一个数字一个回车,并从小到大输入n,n); L=(
2、Doulinklist)malloc(sizeof(Doublelikedlist); L-next=L; L-prior=L; for(i=0;idata); p-next=L-next; L-next-prior=p; p-prior=L; L-next=p; return(L);Doulinklist Mergelist(Doulinklist L1,Doulinklist L2,Doulinklist L3)/*合并*/ Doulinklist pa,pb,pc; pa=L1-next; pb=L2-next; L3=pc=L1; while(pa!=L1&pb!=L2) if(pa-
3、data=pb-data) pc-next=pa; pa-prior=pc; pc=pa;pa=pa-next; else pc-next=pb; pb-prior=pc; pc=pb;pb=pb-next; if(pa!=L1) pc-next=pa;pa-prior=pc; else pc-next=pb;pb-prior=pc; return(L3);void print(Doulinklist L) Doulinklist p; p=L-next; while(p!=L) printf(%d ,p-data); p=p-next; int main() Doulinklist La,Lb,Lc; La=Creatlist_L(6); Lb=Creatlist_L(5); Lc=Mergelist(La,Lb,Lc); print(Lc); getchar();