博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++顺序表ADT模板简单应用算法设计:删除顺序表中的冗余元素(数据结构OJ)
阅读量:2339 次
发布时间:2019-05-10

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

顺序表ADT模板简单应用算法设计:删除顺序表中的冗余元素

问题描述

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

应用3:试设计一个算法,删除顺序表L中的冗余元素,即使得操作之后的顺序表中只保留操作之前表中所有值都不相同的元素(提纯)。

参考函数原型:

template
&L );

输入说明

第一行:待处理顺序表的长度

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

输出说明

第一行:待处理顺序表的遍历结果

第二行:提纯结果

(输入与输出之间以空行分隔)

输入范例

1013 5 13 9 32 51 76 5 9 8

输出范例

13 5 13 9 32 51 76 5 9 8 13 5 9 32 51 76 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 Purge_Sq(vector
&L){ show(L); for(int i = 0 ;i < L.size() - 1;i ++) { for(int j = i + 1;j < L.size(); j++) { if(L.at(i) == L.at(j)) { L.erase(L.begin() + j); } } } cout<
>Asize; vector
A(Asize); string str; for(int i = 0 ;i < Asize;i ++) { cin>>str; A.at(i) = str; } Purge_Sq(A); return 0;}

在这里插入图片描述

分析与总结

  • vector中的erase方法,单独删除一个元素的时候,形参仅仅为向量的迭代器,不是整型的索引。

在这里插入图片描述

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

你可能感兴趣的文章
树的先序、中序、后序和层次遍历-C++实现
查看>>
static和const关键字的作用
查看>>
Hadoop Hdfs 配置
查看>>
tsung集群测试
查看>>
oracle定时删除表空间的数据并释放表空间
查看>>
servlet文件上传下载
查看>>
解决文件提示: /bin/ksh^M: bad interpreter: bad interpreter:No such file or directory
查看>>
ajaxanywhere jsp 使用
查看>>
jquery的使用
查看>>
如何静态化JSP页面
查看>>
XML 与 Java 技术: 用 Castor 进行数据绑定
查看>>
Python未知领域系列:(附Python学习教程+Python学习路线)Python高级教程之面向对象
查看>>
盘点Python 面向对象编程最容易被忽视的知识点
查看>>
Python:一个可以套路别人的python小程序
查看>>
用Python告诉你:这些年,我们点过的的那些外卖
查看>>
如何美观地打印Python对象?这个标准库可以简单实现
查看>>
写作路上的这些小成绩,铸就了一个不平庸的程序员
查看>>
程序员找工作的个人经验教训以及注意事项
查看>>
2019 编程语言排行榜:Java、Python 龙争虎斗!谁又屹立不倒
查看>>
拥有10年编程经验的你,为什么还一直停留在原地
查看>>