本文共 1469 字,大约阅读时间需要 4 分钟。
目的:使用STL中的vector模板,设计并实现顺序表应用场合的一些简单算法设计。
应用4:试设计一个算法,将所有在线性表LB中但不在LA中的数据元素插入到LA中,算法执行之后,线性表LB不再存在。
参考函数原型:
templatevoid Union_Sq( vector &LA,vector &LB );
第一行:待处理顺序表LA的长度
第二行:待处理顺序表LA的数据元素(数据元素之间以空格分隔)
第三行:待处理顺序表LB的长度
第四行:待处理顺序表LB的数据元素(数据元素之间以空格分隔)
第一行:顺序表LA的遍历结果
第二行:顺序表LB的遍历结果
第三行:合并后顺序表LA的遍历结果
1013 5 27 9 32 123 76 98 54 871013 5 13 9 32 51 76 5 54 8
13 5 27 9 32 123 76 98 54 87 13 5 13 9 32 51 76 5 54 8 13 5 27 9 32 123 76 98 54 87 51 8
#include#include using namespace std;/* description:show all the elements of the vector*/template void show(vector & A){ typename std::vector test = A; typename std::vector ::iterator iter; for(iter = test.begin();iter != test.end();iter ++) { cout<<*iter<<" "; } cout< void Union_Sq(vector &LA,vector &LB){ show(LA); show(LB); cout< ::iterator iterA = LA.begin(); typename std::vector ::iterator iterB = LB.begin(); while(iterB != LB.end()) { iterA = LA.begin(); while(iterA != LA.end()) { if(*iterA == *iterB) { isFlag = false; break; } iterA ++; } if(isFlag) { LA.push_back(*iterB); } isFlag = true; iterB ++; } show(LA);}int main(){ int Asize; cin>>Asize; vector A(Asize); string str; for(int i = 0 ;i < Asize;i ++) { cin>>str; A.at(i) = str; } int Bsize; cin>>Bsize; vector B(Bsize); for(int i = 0 ;i < Bsize;i ++) { cin>>str; B.at(i) = str; } Union_Sq(A,B); return 0;}
转载地址:http://pwwvb.baihongyu.com/