西南科技大学OJ题 有序顺序表的合并操作的实现0941
生活随笔
收集整理的這篇文章主要介紹了
西南科技大学OJ题 有序顺序表的合并操作的实现0941
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
有序順序表的合并操作的實(shí)現(xiàn)
已知兩非遞減的順序線性表,要求合并成一個(gè)新的非遞減順序線性表。(測(cè)試數(shù)據(jù)為整型)
輸入
輸入包含四行,第一行為自然數(shù)n,表示第一個(gè)非遞減順序線性表的長(zhǎng)度; 第二行為n個(gè)自然數(shù)構(gòu)成的非遞減順序線性表; 第三行為自然數(shù)m,表示第二個(gè)非遞減順序線性表的長(zhǎng)度; 第四行為m個(gè)自然數(shù)構(gòu)成的非遞減順序線性表。輸出
輸出:用一行輸出合并后的非遞減順序線性表,各數(shù)之間用一個(gè)空格隔開。樣例輸入
2 1 3 3 2 3 6樣例輸出
1 2 3 3 6 #include<stdio.h> struct SqList//聲明順序表結(jié)構(gòu)體 {int data[100];int length; }LA,LB,LC; void UnionList(SqList *LA,SqList *LB,SqList *LC) {int i=0,j=0,k=0;while(i<LA->length&&j<LB->length)//比較順序表1和順序表2的值將小的儲(chǔ)存在LC中 {if(LA->data[i]<LB->data[j]){LC->data[k]=LA->data[i];i++;k++;}else{LC->data[k]=LB->data[j];j++;k++;}}while(i<LA->length){LC->data[k]=LA->data[i];i++;k++;}while(j<LB->length){LC->data[k]=LB->data[j];j++;k++;}LC->length=k; }void DispList(SqList *LC)//輸出合并后的順序表 {for(int i=0;i<LC->length;i++){printf("%d ",LC->data[i]);} } int main() {scanf("%d",&LA.length);//儲(chǔ)存第一個(gè) 順序表的長(zhǎng)度 for(int i=0;i<LA.length;i++){scanf("%d",&LA.data[i]);//儲(chǔ)存第一個(gè)順序表的數(shù)據(jù) }scanf("%d",&LB.length);//儲(chǔ)存第二個(gè) 順序表的長(zhǎng)度 for(int i=0;i<LB.length;i++){scanf("%d",&LB.data[i]);//儲(chǔ)存第二個(gè)順序表的數(shù)據(jù) }UnionList(&LA,&LB,&LC);//合并 DispList(&LC);//輸出結(jié)果 } /* #include<stdio.h> int main() {int a[100],m,n;scanf("%d",&m);for(int i=0;i<m;i++){scanf("%d",&a[i]);}scanf("%d",&n);for(int i=m;i<n+m;i++){scanf("%d",&a[i]);}for(int i=0;i<m+n;i++){for(int j=0;j<m+n-1;j++){if(a[j]>a[j+1]){int k=a[j];a[j]=a[j+1];a[j+1]=k;}}}for(int i=0;i<n+m;i++){printf("%d ",a[i]);}}*/?
總結(jié)
以上是生活随笔為你收集整理的西南科技大学OJ题 有序顺序表的合并操作的实现0941的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: springboot工具类
- 下一篇: java socketchannel a