OJ 合并链表(线性表)
来源:互联网 发布:海淘攻略知乎 编辑:程序博客网 时间:2024/05/04 20:52
Description
(线性表)假设有两个按元素值递增次序排列的线性表,均以单链表形式存储。请编写算法将这两个单链表归并为一个按元素值递减次序排列的单链表,并要求利用原来两个单链表的结点存放归并后的单链表。
Input
输入长度n:5
输入数据:1 2 5 6 8
输入长度m:5
输入数据:3 4 7 9 10
Output
10 9 8 7 6 5 4 3 2 1
Sample Input
47 9 10 1148 12 13 14
Sample Output
14 13 12 11 10 9 8 7
#include<iostream>#include<cstdlib>using namespace std;typedef struct Lnode{int data;struct Lnode *next;}LinkList;void CreatList(LinkList*&L,int n)//建立 链表{LinkList *r,*s;L=(LinkList*)malloc(sizeof(LinkList));r=L;for(int i=0;i<n;i++){s=(LinkList*)malloc(sizeof(LinkList));cin>>s->data;r->next =s;r=s;}r->next=NULL;}void Display(LinkList *L)//输出{LinkList *p=L->next;while(p!=NULL){cout<<p->data<<' ';p=p->next;}}void HB(LinkList *&L1,LinkList *&L2,int n,int m)//l1和L2合并{LinkList *p1=L1;LinkList *p2=L2;while(p1->next!=NULL)//找L1的中点p1=p1->next; p1->next=p2->next;//l1和l2结上 free(L2);//头结点删除 LinkList*p,*pre,*q; p=L1->next->next; L1->next->next=NULL; while(p!=NULL) { q=p->next; pre=L1; while(pre->next!=NULL&&pre->next->data>p->data)//寻找前一个>后一个的然后两两比较 pre=pre->next; p->next=pre->next; pre->next=p; p=q; }} int main(){LinkList *p,*q;int n,m;cin>>n;CreatList(p,n);cin>>m;CreatList(q,m);HB(p,q,n,m);Display(p);return 0;}
- OJ 合并链表(线性表)
- 线性链表合并
- YTU-OJ-单链表(线性表)-合并两个升序链表后降序输出
- 合并线性表(MergeList)
- 合并两个线性表
- 线性表合并
- 合并线性表
- 线性表合并
- 合并两个线性表
- 线性表合并
- 合并两个线性表
- 线性表算法-合并
- 线性表的合并
- 线性表的合并
- 合并线性表
- 线性表合并
- 线性表的合并
- 合并两个线性表
- 【MZ】hdu 4117 AC自动机DP + 线段树优化
- 基于S3C2410和UDAl34l的嵌进式音频系统设计
- linux-tty
- 0013算法笔记——【动态规划】最大子段和问题,最大子矩阵和问题,最大m子段和问题
- memcached相关的资料
- OJ 合并链表(线性表)
- 浙工ACM1306
- How do I build openvpn without libpam?
- Linux 环境进程间通信(六)
- 二分图匹配_裸题
- ZOJ 3414
- oracle中读写blob字段的问题解析
- 工作总结
- 网络第四课(1)