题目
从有序顺序表中删除其值重复的元素,使表中所有元素的值均不同
代码如下
#include <iostream>
using namespace std;
#define Elemtype int
#define maxsize 50
typedef struct Sqlist
{
Elemtype data[maxsize];
int length=0;
}Sqlist;
Sqlist del_repeat(Sqlist L)
{
int i;
int j;
for(i=0,j=1;j<L.length;j++)
{
if(L.data[i]!=L.data[j])
L.data[++i]=L.data[j];
}
L.length=i+1;
return L;
}
int main()
{
struct Sqlist L;
int n;
cout<<"请输入数据个数"<<endl;
cin>>n;
if(n<=0)
{
cout<<"出错"<<endl;
return 0;
}
else
{
cout<<"输入值"<<endl;
int num;
for(int i=0;i<n;i++)
{
cin>>num;
L.data[i]=num;
L.length++;
}
L=del_repeat(L);
cout<<"删除后数组"<<endl;
for(int i=0;i<L.length;i++)
cout<<L.data[i]<<" ";
cout<<endl;
}
}
还是想说:好的算法思想简直事半功倍!
算法的路很难走,但要走下去啊!
明天见!