[c++]代码库
//***********************************
//功能:顺序表的元素递增排列,删除表中的重复元素
//日期: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;
}