順序表應用5:有序順序表歸併
Problem Description
已知順序表A與B是兩個有序的順序表,其中存放的資料元素皆為普通整型,將A與B表歸併為C表,要求C表包含了A、B表裡所有元素,並且C表仍然保持有序。
Input
輸入分為三行:
第一行輸入m、n(1<=m,n<=10000)的值,即為表A、B的元素個數;
第二行輸入m個有序的整數,即為表A的每一個元素;
第三行輸入n個有序的整數,即為表B的每一個元素;
Output
輸出為一行,即將表A、B合併為表C後,依次輸出表C所存放的元素。
Sample Input
5 3 1 3 5 6 9 2 4 10
Sample Output
1 2 3 4 5 6 9 10
Hint
Source
這個題主要練習的是結構體的知識與順序表合併。
//ios::sync_with_stdio(false);
#include<iostream>
#include<stdlib.h>
#include<stdio.h>
#define MaxSize 100001
using namespace std;
typedef int element;
typedef struct List{
element data[MaxSize];
int size;
}list1,list2,list3;
void init(list1 &l1,list2 &l2,int a,int b,list3 &l3){
for(int i = 0 ; i < a;i++){
l1.data[i] = 0;
}
l1.size = a;
for(int i = 0 ; i < b;i++){
l2.data[i] = 0;
}
l2.size = b;
for(int i = 0 ; i < a + b;i++){
l3.data[i] = 0;
}
l3.size = a + b;
}
void input(list1 &l1,list2 &l2,int a,int b){
int j;
for(int i = 0 ; i < a;i++){
cin >> j;
l1.data[i] = j;
//printf("%d\n",l1.data[i]);
}
for(int i = 0 ; i < b;i++){
cin >> j;
l2.data[i] = j;
//printf("%d\n",l2.data[i]);
}
}
void merge(list1 &l1,list2 &l2,list3 &l3){
int aa = 0,bb = 0,index = 0;
int c = l1.size + l2.size;
//printf("%d\n",c);
while(c--){
int a = (aa >= l1.size ? 65535 : l1.data[aa]);
//printf("%d\n",a);
int b = (bb >= l2.size ? 65535 : l2.data[bb]);
if(a > b){
l3.data[index++] = b;
//printf("%d\n",a);
bb++;
}else{
l3.data[index++] = a;
aa++;
}
}
}
void output(list3 &l3){
int i;
for(i = 0 ; i < l3.size - 1;i++){
printf("%d ",l3.data[i]);
}
printf("%d\n",l3.data[i]);
}
int main(){
ios::sync_with_stdio(false);
int a,b;
list1 l1;
list2 l2;
list3 l3;
cin >> a >> b;
init(l1,l2,a,b,l3);
input(l1,l2,a,b);
merge(l1,l2,l3);
output(l3);
}
相關文章
- 順序表應用6:有序順序表查詢
- 順序表有序插入資料
- 順序表
- 第2章 順序表及其順序儲存
- 順序表的學習
- 順序表的實現
- Java實現順序表Java
- 順序表的堆排序排序
- DS順序表--類實現
- 5-順序表查詢及插入問題
- 資料結構 - 線性表 - 順序表資料結構
- 順序表實現二分排序排序
- 實驗二:順序表的基本操作實現及其應用
- 考研資料結構-線性表-順序表資料結構
- 線性表-順序表C語言實現C語言
- 線性表的順序儲存-順序表,對“突然的自我”的否定,對自我的揚棄
- 線性表的使用——順序實現
- 隨筆:MySQL 普通3表join順序MySql
- C++ 運算子優先順序表C++
- 連結串列,樹,順序表操縱
- 順序表應用3:元素位置互換之移位演算法演算法
- 順序表應用7:最大子段和之分治遞迴法遞迴
- 線性表之順序儲存結構
- 順序表應用1:多餘元素刪除之移位演算法演算法
- 順序表應用4:元素位置互換之逆置演算法演算法
- 順序表應用8:最大子段和之動態規劃法動態規劃
- python運算子及優先順序順序Python
- 順序表應用2:多餘元素刪除之建表演算法演算法
- Script載入順序 & 外部樣式表的阻塞
- 第3章 順序表的鏈式儲存
- 11 線性表的順序儲存結構
- 資料結構與演算法 | 線性表 —— 順序表資料結構演算法
- 資料結構實驗一:順序表的建立與操作實現、順序表實現約瑟夫環問題資料結構
- SpringBoot配置檔案優先順序載入順序Spring Boot
- 資料結構_順序表_順序表的初始化、插入、刪除、修改、查詢列印(基於C語言實現)資料結構C語言
- UML順序圖
- 順序查詢
- 順序結構