【数据结构—顺序表】顺序表中删除所有其值重复的元素
描述:有了一个顺序表(a 0 ,a 1 ,…,a n-1),元素中可能存在重复的值,元素是无优先的,从顺序表中删除其值重复的所有元素,即值相同的元素仅仅保留一个,输出删除后的顺序表。要求:该删除函数不属于类的成员函数,定义一个独立的函数,通过使用顺序表的基本操作(即成员函数)实现。
#include<iostream>
using namespace std;
void shanchu(int a[],int *n){
int i=0,j=*n,b;
for(i;i<j;i++){
b=a[i];
for(int c=i+1;c<j;c++){
if(a[c]==b){
for(i;i<j;i++){
a[i]=a[i+1];
}
i=-1;
j--;
break;
}
}
}
*n=j;
}
void shuchu(int a[],int n){
cout<<"{ ";
for(int i=0;i<n;i++){
cout<<a[i]<<" ";
}
cout<<"}";
}
int main(){
int a[20];
int n;
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i];
}
shanchu(a,&n);
shuchu(a,n);
}
测试数据:
9
1 3 5 1 7 3 6 5 8
运行结果