- #include "stdafx.h"
- #include "stdio.h"
- #include "stdlib.h"
- #include "malloc.h"
- typedef struct LNode
- {
- int data;
- LNode* next;
- }LNode, *LinkList;
- LinkList La, Lb, Lc;
- LNode* Create()
- {
- LinkList l, p, q;
- int x;
- l=NULL;
- l=(LNode*)malloc(sizeof(LNode));
- if(l==NULL) exit(-1);
- l->next = NULL;
- scanf("%d", &x);
- while(x!=9999)
- {
- p=(LNode*)malloc(sizeof(LNode));
- p->data = x;
- if((l->next)==NULL)
- {
- l->next = p;
- q=p;
- }
- else
- {
- q->next = p;
- q=p;
- }
- scanf("%d",&x);
- }
- p->next = NULL;
- return (l);
- }
- void print_LinkList(LinkList l)
- {
- LinkList p;
- p=l;
- printf("---");
- while(p->next!=NULL)
- {
- p = p->next;
- printf("%5d",p->data);
- }
- printf("/n/n");
- }
- LinkList MergeList(LinkList La, LinkList Lb)
- {
- 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);
- return(Lc);
- }
- int _tmain(int argc, _TCHAR* argv[])
- {
- La = Create();
- Lb = Create();
- MergeList(La,Lb);
- print_LinkList(Lc);
- return 0;
- }
常见C语言面试题之十:有序表合并
最新推荐文章于 2023-12-03 23:32:07 发布