王道 数据结构 p17 第6题
#include<iostream>
#define InitSize 100
#define arrLen 7
using namespace std;
typedef struct {
int *data;
int len,MaxSize;
}SeqList;
void init(SeqList &L){
L.data=new int[InitSize];
L.len=0;
if(L.data!=NULL)
cout<<"success!" <<endl;
else
cout<<"faild"<<endl;
}
void input(SeqList &L){
for(int i=0;i<arrLen;i++)
{
cout<<"请输入第"<<i+1<<"个数字:";
cin>>L.data[i];
L.len++;
}
}
void output(SeqList &L)
{
for(int i=0;i<L.len;i++)
{
cout<<L.data[i]<<" ";
}
cout<<endl;
}
void mySwap(int &x,int &y)
{
int temp=x;
x=y;
y=temp;
}
void selectionSort(SeqList &L)
{
for(int i=0;i<L.len-1;i++)
{
int leastIndex=i;
for(int j=i+1;j<L.len;j++)
{
if(L.data[j]<L.data[leastIndex])
leastIndex=j;
}
mySwap(L.data[i],L.data[leastIndex]);
}
}
int deleteSame(SeqList &L)
{
if(L.len==0)
return 0;
int i=0,j=1;
for(;j<L.len;j++)
{
if(L.data[i]!=L.data[j])
{
L.data[++i]=L.data[j];
}
}
L.len=i+1;
}
int main(){
SeqList L;
init(L);
input(L);
selectionSort(L);
cout<<endl<<"删除前:" ;
output(L);
deleteSame(L);
cout<<endl<<"删除后:" ;
output(L);
return 0;
}