//*********************************** |
//功能:顺序表的元素递增排列,删除表中的重复元素 |
//日期:2017年9月19日 |
//作者:Ryan2019 |
//*********************************** |
#include <iostream> |
using namespace std; |
const int ListlnitSize=0; |
const int Listlnc=10; |
typedef int LElemType; |
struct SList |
{ |
LElemType *elem; |
int length,listsize; |
}; |
bool Listlnit(SList &L); //顺序表初始化 |
bool ListCreate(SList &L, int n,LElemType a[]); //创建顺序表 |
bool DeleteRepeat(SList &A); //新表 |
int main() |
{ |
const int m=8; |
LElemType a[m]={1,1,2,2,3,4,4,4}; |
SList A; |
ListCreate(A,m,a); |
cout<< "线性表A为" <<endl; |
for ( int j=0;j<m;j++){cout<<A.elem[j]<< " " ;} |
DeleteRepeat(A); |
cout<<endl<< "执行操作后的顺序表A为" <<endl; |
for ( int k=0;k<A.length;k++){cout<<A.elem[k]<< " " ;} |
cout<<endl; |
return 0; |
} |
bool Listlnit(SList &L) |
{ |
L.elem= new LElemType[ListlnitSize]; |
if (!L.elem) return false ; |
L.length=0; |
L.listsize=ListlnitSize; |
return true ; |
} |
bool ListCreate(SList &L, int n,LElemType a[]) |
{ |
int i; |
L.elem= new LElemType[n+ListlnitSize]; |
if (!L.elem) return false ; |
L.length=n; |
L.listsize=n+ListlnitSize; |
for (i=0;i<n;i++) |
{ |
L.elem[i]=a[i]; |
} |
return true ; |
} |
bool DeleteRepeat(SList &A) |
{ |
int j=1; |
for ( int i=1;i<A.length;i++) |
{ |
if (A.elem[i]!=A.elem[i-1]) |
{ |
A.elem[j]=A.elem[i]; |
j++; |
} |
} |
A.length=j; |
return true ; |
} |