链式有序表合并
2015-11-22 22:44
274 查看
#include<stdio.h> #include <conio.h> #include<stdlib.h> #include<iostream.h> typedef int ElemType; typedef struct LNode { ElemType data; struct LNode *next; }LNode,*LinkList; LinkList LA,LB,LC; void InitList(LinkList &L) { L=new LNode; if(L==NULL) { cerr<<"存储分配错误!"<<endl; exit(1); } L->next=NULL; } //前插法会影响结果 /*void CreateList_H(LinkList &L,int n) { L=new LNode; L->next=NULL; LNode *p; for(int i=0;i<n;++i) { p=new LNode; cin>>p->data; p->next=L->next; L->next=p; } }*/ void CreateList_R(LinkList &L,int n) {/*后插法*/ L=new LNode; L->next=NULL; LNode *p; LNode *r; r=L; for(int i=0;i<n;++i) { p=new LNode; cin>>p->data; p->next=NULL; r->next=p; r=p; } } void MergeList_L(LinkList &LA,LinkList &LB,LinkList &LC) { LNode *pa;LNode *pb;LNode *pc; pa=LA->next;pb=LB->next; LC=LA; pc=LC; 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; delete LB; } void Output(LinkList &L) { while(L->next!=NULL) { cout<<L->next->data<<" "; L=L->next; } } void main() { char ch; int a,b; LinkList LA,LB,LC; InitList(LA); InitList(LB); InitList(LC); do{ cout<<"请输入LA的长度:"; cin>>a; cout<<"请按顺序输入LA的元素:"; CreateList_R(LA,a); cout<<"请输入LB的长度:"; cin>>b; cout<<"请按顺序输入LB的元素:"; CreateList_R(LB,b); MergeList_L(LA,LB,LC); Output(LC); cout<<endl; printf("是否继续?[y/n][y]"); while((ch=getchar())!='\n'); }while((ch=getchar())=='y'||ch=='\n'); } void Exchang(LinkList &LA,LinkList &LC) { LNode *pa;LNode *pc; pa=LA->next; LC=LA; pc=LC; while(pa) { if(pa->data<=pa->next->data) { pc->next=pa; pc=pa; pa=pa->next; } else { pc->next=pa->next; pc=pa->next; pa=pa->next->next; } } }
相关文章推荐
- 一个纸牌游戏的算法
- MFC笔记3
- spring中的缓存--Caching
- Android自定义控件实现
- 黑马程序员日记-19
- WeakHashMap 源代码
- <对冲之王 - 华尔街量化投资传奇> 读后感
- iOS开发之.a文件的制作
- R3.2.2安装
- Android Studio的使用(十四)--如何查看资源或者函数在哪些类中被引用
- ASP.NET动态网站制作(28)-- 三层框架(2)
- javaScript与Objective-C交互
- C#引用JQuery的步骤
- 集合及集合体系
- struts2验证框架
- 黑马程序员日记-18
- 关于单链表有哪些有趣的问题
- git 使用cases分析
- xxx.properties获取方法
- InputStreamReader和BufferedReader用法及真实案例