在长度为n(n<1000)的顺序表中可能存在着一些相同的“多余”的数据元素从顺序表中删除,使该表由一个“非纯表”变成一个“纯表”。第一行输入表的长度n,第二行依次输入顺序表初始存放的n个元素值。第一行输出完成多余的元素删除以后顺序表的元素个数,第二行依次输出完成删除后的顺序表元素
时间: 2024-10-10 08:17:11 浏览: 49
数据结构顺序表实验
在C++中,要实现这个功能,你可以创建一个动态数组(vector)来代表顺序表,并遍历整个数组,移除重复的元素。这里是一个简单的示例代码:
```cpp
#include <iostream>
#include <vector>
#include <unordered_set>
int main() {
int n;
std::cin >> n;
// 创建一个vector来存储顺序表
std::vector<int> sequence(n);
for (int i = 0; i < n; ++i) {
std::cin >> sequence[i];
}
// 使用unordered_set来查找并移除重复的元素
std::unordered_set<int> unique_elements(sequence.begin(), sequence.end());
sequence.erase(unique_elements.end(), sequence.end());
// 输出新的元素数量
std::cout << "Unique elements after removing duplicates: " << sequence.size() << "\n";
// 如果你想保持原有的顺序,可以使用另一种方法,但效率较低
// std::sort(sequence.begin(), sequence.end()); // 对剩余的元素排序
// sequence.erase(std::unique(sequence.begin(), sequence.end()), sequence.end());
// 输出剩余的唯一元素
for (const auto& elem : sequence) {
std::cout << elem << " ";
}
std::cout << "\n";
阅读全文