一个简单顺序表的C++实现

时间:2023-03-09 07:09:51
一个简单顺序表的C++实现
/* SList.cpp
Author: Qiang Xiao
Time: 2015-07-11
*/
#include<iostream>
using namespace std; const int MAX_LENGTH= ; class SList{
private:
  int max_len;
int arr[MAX_LENGTH];
  int len;
public:
   SList(int a[], int len);
   bool append(int);
   bool insert(int, int);
   void sort();
   void swap(int*, int*);
   int getMax();
   int getMin();
   int getLength() const;
   void print();
   bool pop();
   bool remove(int);
}; SList::SList(int a[], int leni){
this->max_len= MAX_LENGTH; if(leni< this->max_len+ ) {
for(int i= ; i< leni; i++){
arr[i]= a[i];
}
this->len= leni;
}
else
cout<<"Create Failed!"<<endl;
} bool SList::pop(){
if(this->len< ){
cout<<"Out of range!"<<endl;
return false;
}
this->arr[len-]= ;
this->len--;
return true;
} bool SList::remove(int pos){
if(pos< || pos> this->len-){
cout<<"Out of range!"<<endl;
return false;
}
for(int i= pos; i< this->len; i++){
this->arr[i]= this->arr[i+];
}
this->arr[this->len-]= ;
this->len--;
} int SList::getLength() const{
return this->len;
} int SList::getMax() {
this->sort();
return this->arr[this->len-];
} int SList::getMin() {
this->sort();
return this->arr[];
} void SList::swap(int* i, int* j){
int tmp= *i;
*i= *j;
*j= tmp;
} bool SList::insert(int pos, int elem){
if(this->len< this->max_len){
  if(pos< || pos> this->max_len || this->len> this->max_len- ){
   cout<<"Out of range."<<endl;
  return false;
  }
for(int i= this->len; i> pos; i--){
this->arr[i]= this->arr[i- ];
}
this->arr[pos]= elem;
this->len++;
return true;
}

} bool SList::append(int elem){
if(this->len< this->max_len){
  this->arr[this->len]= elem;
  len++;
  return true;
}
return false;
} void SList::sort(){
for(int i= ; i< this->len; i++){
int min= i;
for(int j= i; j< this->len; j++){
if(this->arr[j]< this->arr[min]){
min= j;
}
}
this->swap(&this->arr[min], &this->arr[i]);
}
this->print();
cout<<endl;
} void SList::print(){
for(int i= ; i< this->len; i++){
cout<<arr[i]<<"\t";
if((i+)%== )
cout<<endl;
}
} int main(){
cout<<"*****************TEST BEGIN*****************"<<endl;
int a[]= {,,,,, };
int len= sizeof(a)/sizeof(a[]);
SList* s= new SList(a, len);
s->print();
cout<<"\n******************************************"<<endl;
int item= ;
s->append(item);
s->print();
cout<<"\n******************************************"<<endl;
int newi= ;
int pos= ;
s->insert(pos, newi);
s->print();
cout<<"\n************After Sort********************"<<endl;
s->sort();
cout<<"\n************MAX, MIN & LENGTH*************"<<endl;
cout<<"MAX: "<<s->getMax()<<", MIN: "<<s->getMin()<<", LENGTH: "<<s->getLength()<<endl;
cout<<"\n*******************POP********************"<<endl;
s->pop();
s->print(); cout<<"\n*****************TEST END*****************"<<endl; return ; }

欢迎交流!