#include <iostream> |
#include<stdlib.h> |
#include<iomanip> |
using namespace std; |
typedef int ElemType; |
class SeqList |
{ |
private : |
ElemType *list; |
int maxsize; |
int length; |
public : |
SeqList( int max=0); |
~SeqList( void ); |
bool ListEmpty( void ); |
int ListLength( void ); |
void ListTraverse( void ); |
int LocateElem( int i,ElemType e); |
void ListInsert(ElemType &item, int i); |
ElemType ListDelete( int i); |
ElemType GetElem( int i); |
}; |
SeqList::SeqList( int max) |
{ |
maxsize=max; |
length=0; |
list= new ElemType[maxsize]; |
} |
SeqList::~SeqList( void ) |
{ |
delete []list; |
} |
bool SeqList::ListEmpty( void ) |
{ |
if (length==0) |
return true ; |
else |
return false ; |
} |
int SeqList::ListLength( void ) |
{ |
return length; |
} |
void SeqList::ListTraverse( void ) |
{ |
if (!ListEmpty()) |
for ( int i=0;i<length ;i++) |
cout<<setw(4)<<list[i]; |
cout<<endl; |
} |
void SeqList::ListInsert(ElemType &item, int i) |
{ |
if (length==maxsize) |
{ |
cout<< "顺序表已满" <<endl; |
exit (0); |
} |
if (i<0||i>length) |
{ |
cout<< "参数i出错" <<endl; |
exit (0); |
} |
for ( int j=length;j>i;j--) |
list[j]=list[j-1]; |
list[i]=item; |
length++; |
} |
ElemType SeqList::ListDelete( int i) |
{ |
if (length==0) |
{ |
cout<< "顺序表已空" <<endl; |
exit (0); |
} |
if (i<0||i>length-1) |
{ |
cout<< "参数i出错" <<endl; |
exit (0); |
} |
ElemType x=list[i]; |
for ( int j=i;j<length-1;j++) |
list[j]=list[j+1]; |
length--; |
return x; |
} |
ElemType SeqList::GetElem( int i) |
{ |
if (i<0||i>length-1) |
{ |
cout<< "参数i出错" <<endl; |
exit (0); |
} |
return list[i]; |
} |
int main() |
{ |
SeqList mylist(100); |
int i,a[]={6,8,16,2,34,56,7,10,22,45}; |
for (i=0;i<10;i++) |
mylist.ListInsert(a[i],i); |
cout<< "插入后顺序表" ; |
mylist.ListTraverse(); |
mylist.ListDelete(4); |
cout<< "删除后顺序表" ; |
mylist.ListTraverse(); |
return 0; |
} |