BJFU-225-基于链表的两个递增有序序列的合并
2019-10-28 06:19:23来源:博客园 阅读 ()
BJFU-225-基于链表的两个递增有序序列的合并
1 #include<stdio.h> 2 #include<stdlib.h> 3 typedef struct Lnode{ 4 int num; 5 struct Lnode * next; 6 }Lnode,*LinkList; 7 8 typedef struct Link{ 9 LinkList data; 10 struct Link * next; 11 }Link,*List; 12 void creatList(LinkList &L,int n) 13 { 14 L = (LinkList)malloc(sizeof(Lnode)); 15 L->next = NULL; 16 LinkList rear = L; 17 18 for(int i=1;i<=n;i++) 19 { 20 LinkList p = (LinkList)malloc(sizeof(Lnode)); 21 22 scanf("%d",&p->num); 23 rear->next = p; 24 p->next = NULL; 25 rear = p; 26 } 27 } 28 void traverse(LinkList L) 29 { 30 LinkList p = L->next; 31 while(p) 32 { 33 if(p->next==NULL) 34 { 35 printf("%d",p->num);//最后一个数字的输出不能有空格,不然编译通不过。不要问我为什么!!! 36 }else{ 37 printf("%d ",p->num); 38 } 39 40 p = p->next; 41 } 42 printf("\n"); 43 } 44 LinkList mergeList(LinkList La,LinkList Lb,int n,int m) 45 { 46 LinkList Lc,a,b,c; 47 Lc = La; 48 a = La->next; 49 b = Lb->next; 50 c = Lc; 51 52 while(a&&b) 53 { 54 if(a->num > b->num) 55 { 56 c->next = b; 57 c = b; 58 b = b->next; 59 }else if(a->num==b->num) 60 { 61 LinkList q = b; 62 c->next = a; 63 c = a; 64 a = a->next; 65 b = b->next; 66 free(q); 67 }else 68 { 69 c->next = a; 70 c = a; 71 a = a->next; 72 } 73 } 74 75 c->next = a?a:b; 76 free(Lb); 77 return Lc; 78 } 79 int main() 80 { 81 int n,m; 82 83 List Lc = (List)malloc(sizeof(Link)); 84 List r = Lc; 85 while(1) 86 { 87 scanf("%d%d",&n,&m); 88 if(n==0&&m==0) break; 89 LinkList La,Lb; 90 creatList(La,n); 91 creatList(Lb,m); 92 93 List pc = (List)malloc(sizeof(Link)); 94 LinkList Lc = mergeList(La,Lb,n,m); 95 pc->data = Lc; 96 r->next = pc; 97 r = pc; 98 pc->next = NULL; 99 100 } 101 List p = Lc->next; 102 while(p) 103 { 104 traverse(p->data); 105 p = p->next; 106 } 107 }
原文链接:https://www.cnblogs.com/wwww2/p/11745429.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- leetcode 反转链表 2020-06-06
- C++冒泡排序 (基于函数模板实现) 2020-05-31
- 数据结构—链表 2020-05-29
- STL之list 2020-04-30
- C++抓图服务 2020-03-31
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash