数据结构(严蔚敏)算法2.1

假如想象 提交于 2019-12-29 07:48:48
 1 //将线性表La和Lb合并到新表Lc中
 2 #include <stdio.h>
 3 #define Maxsize 100
 4 #define ERROR 0
 5 #define OK 1
 6 typedef struct{
 7     int data[Maxsize];
 8     int length;
 9 }Sqlist;
10 //声明函数
11 void InsertList(Sqlist *Lc,int n);//将元素n插入到线性表Lc
12 int GetElem(Sqlist *L,int n);//返回线性表L中第N个元素
13 void Insert(Sqlist *Lc);//初始化线性表 
14 
15 int main(void){
16     Sqlist La,Lb,Lc;
17     int La_len,Lb_len,i,j,ai,bj;
18     printf("请输入La的长度");
19     scanf("%d",&La_len);
20     La.length=La_len;
21     printf("请输入Lb的长度");
22     scanf("%d",&Lb_len);
23     Lb.length=Lb_len;
24     printf("请输入La的元素,用空格隔开");
25     for(i=0;i<La_len;i++)
26         scanf("%d",&La.data[i]);
27      
28     printf("请输入Lb的元素,用空格隔开");
29     for(i=0;i<Lb_len;i++)
30         scanf("%d",&Lb.data[i]);
31     Insert(&Lc);
32 
33     i=1;j=1;
34     while((i<=La.length)&&(j<=Lb.length)){ //La和Lb非空 
35         ai=GetElem(&La,i);
36         bj=GetElem(&Lb,j);
37         if(ai<=bj) {
38             InsertList(&Lc,ai);
39             i++;
40         }
41         else{
42             InsertList(&Lc,bj);
43             j++;
44         }
45     }
46     while(i<=La.length){
47         ai=GetElem(&La,i);
48         InsertList(&Lc,ai);
49         i++;
50     }
51     while(j<=Lb.length){
52         bj=GetElem(&Lb,j);
53         InsertList(&Lc,bj);
54         j++;
55     }
56     
57     //遍历Lc
58     for(i=0;i<Lc.length;i++)
59         printf("%d ",Lc.data[i]);
60     return 0;
61 } 
62 void Insert(Sqlist *Lc){
63     Lc->length=0;
64 }
65 void InsertList(Sqlist *Lc,int n){
66     int size;
67     Lc->length++;
68     size=Lc->length;
69     Lc->data[size-1]=n;    
70 }
71 int GetElem(Sqlist *L,int n){
72     return L->data[n-1];
73 }

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!