博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
顺序表ADT模板简单应用算法设计:有序顺序表的合并
阅读量:2339 次
发布时间:2019-05-10

本文共 2142 字,大约阅读时间需要 7 分钟。

问题描述

目的:使用STL中的vector模板,设计并实现顺序表应用场合的一些简单算法设计。

应用6:假设以两个元素依值递增有序排列的线性表A和B分别表示两个集合(即同一表中的元素值各不相同),现要求设计一个算法,另辟空间构成一个线性表C,其元素为A和B中元素的交集,且C中的元素也依值递增有序排列。

参考函数原型:

template
void Intersect_Sq_OL_C( const vector
&A, const vector
&B, vector
&C );

输入说明

第一行:有序顺序表A的长度

第二行:有序顺序表A的数据元素(数据元素之间以空格分隔)

第三行:有序顺序表B的长度

第四行:有序顺序表B的数据元素(数据元素之间以空格分隔)

输出说明

第一行:顺序表A的遍历结果

第二行:顺序表B的遍历结果

第三行:顺序表C的遍历结果

输入范例

51 3 5 7 981 2 3 4 5 6 9 11

输出范例

1 3 5 7 9 1 2 3 4 5 6 9 11 1 3 5 9

代码实现

#include 
#include
using namespace std;/* description:function to compare two elements*/template
void sort(vector
&A){
Elemtype temp; for(int i = 0;i < A.size();i ++) {
for(int j = i + 1;j < A.size();j ++) {
if(A.at(i) > A.at(j)) {
temp = A.at(i); A.at(i) = A.at(j); A.at(j) = temp; } } }}/* description:show all the elements of the vector*/template
void show(const vector
& A){ typename std::vector
test = A; typename std::vector
::iterator iter; for(iter = test.begin();iter != test.end();iter ++) { cout<<*iter<<" "; } cout<
void Intersect_Sq_OL_C( const vector
&A , const vector
&B , vector
&C ){ show(A); show(B); cout<
< B.size(); j++) { if(A.at(i) == B.at(j)) { isFlag = true; break; } } if(isFlag) { C.push_back(A.at(i)); isFlag = false; } } show(C);}int main(){ int Asize; cin>>Asize; string str; cin>>str; if(str == "a") { vector
A(Asize); A.at(0) = str; for(int i = 1 ; 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; } vector
C; Intersect_Sq_OL_C(A,B,C); } else { vector
B(Asize); B.at(0) = atoi(str.c_str()); int temp; for(int i = 1 ; i < Asize; i ++) { cin>>temp; B.at(i) = temp; } int Bsize; cin>>Bsize; vector
B1(Bsize); for(int i = 0 ; i < Bsize;i ++) { cin>>temp; B1.at(i) = temp; } vector
C; Intersect_Sq_OL_C(B,B1,C); } return 0;}

分析与总结

  • 注意审题,题目已经说明了,所有的元素都是唯一的,并且都是已经排过序的。没有重复的,所以不需要去除重复。

转载地址:http://twwvb.baihongyu.com/

你可能感兴趣的文章
Struts——资源文件加载到Container
查看>>
托管代码与非托管代码
查看>>
C++ 引用/指针/对象名调用
查看>>
C++~数组/指针
查看>>
Java 堆栈
查看>>
C++ 基本操作
查看>>
C++容器/迭代器
查看>>
JS获取客户端主机信息
查看>>
JS判定浏览器内核信息
查看>>
正则表达式
查看>>
常用排序算法总结
查看>>
Java输入输出
查看>>
MSSQL数据库常见问题
查看>>
Java8 Lambda
查看>>
JAVA面试700问
查看>>
数据库DDL,DML,DCL,TCL
查看>>
各大数据库概述,比较
查看>>
子页面跳转
查看>>
常用算法总结
查看>>
数据库连接池
查看>>