两个有序线性表的合并(线性表使用 Vector表示)
生活随笔
收集整理的這篇文章主要介紹了
两个有序线性表的合并(线性表使用 Vector表示)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#include<iostream>
#include<vector>
using namespace std;
#define SIZE_A 2
#define SIZE_B 3
#define SIZE_AB SIZE_A+SIZE_B //2+3=5int main(){void showVector(vector<int> *vector_p);//函數提前聲明vector<int > list_a;vector<int > list_b;vector<int > list_ab;//結果//初始化list_a.resize(SIZE_A,0);for(unsigned int ia=0;ia<list_a.size();ia++){//3,4list_a.at(ia)=ia+3;}list_b.resize(SIZE_B,0);for(unsigned int ib=0;ib<list_b.size();ib++){//2,3,4list_b.at(ib)=ib+2;}list_ab.resize(SIZE_AB,0);unsigned int ia=0;unsigned int ib=0;unsigned int iab=0;while(ia<list_a.size() && ib<list_b.size()){if(list_a.at(ia)<=list_b.at(ib)){list_ab.at(iab)=list_a.at(ia);iab++;ia++;}else{list_ab.at(iab)=list_b.at(ib);iab++;ib++;}}while(ia<list_a.size()){list_ab.at(iab)=list_a.at(ia);iab++;ia++;}while(ib<list_b.size()){list_ab.at(iab)=list_b.at(ib);iab++;ib++;}//展示結果 cout<<"list_a:"<<endl;showVector(&list_a);cout<<"list_b:"<<endl;showVector(&list_b);cout<<"list_ab:"<<endl;showVector(&list_ab);return 0;}
void showVector(vector<int> * vector_p){for(unsigned int i=0;i<vector_p->size();i++){cout<<vector_p->at(i)<<"\t";}cout<<endl;
}
結果如下:
總結
以上是生活随笔為你收集整理的两个有序线性表的合并(线性表使用 Vector表示)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++实现两个矩阵相乘
- 下一篇: 循环右移,要求时间复杂度为O(n)且尽可