学习数据结构基础,如有错误,请指正
/*** 数据结构:顺序表的模拟 ***/ #ifndef __sqlIST_H__ #define __sqlIST_H__ typedef int ElemType; #define MAXSIZE 100 #define ADDSIZE 100 class sqlist { private: ElemType *elem; int longth; int size; public: sqlist(); ~sqlist(); void initsqlist(); void insertsqlist(int index,ElemType elem); void deletesqlist(int index); void print(); }; #endif // __sqlIST_H__ #include "sqlist.h" #include <iostream> using namespace std; sqlist::sqlist() { this->initsqlist(); } sqlist::~sqlist() { delete []this->elem; } void sqlist::initsqlist() { //this->elem = (ElemType *) malloc( MAXSIZE * sizeof(ElemType) ); // C style this->elem = (ElemType *) new ElemType(MAXSIZE); // C++ styles this->size = MAXSIZE; this->longth = 0; } void sqlist::insertsqlist(int index,ElemType elem) { if (index<1 || index >longth+1) { exit(0); } if (this->longth>=this->size) { this->elem = (ElemType *)realloc(this->elem,(this->size+ADDSIZE)*sizeof(ElemType)); this->size += ADDSIZE; } ElemType *p_insert; p_insert = &(this->elem[index-1]); ElemType *p; for( p=&(this->elem[(this->longth-1)]); p>=p_insert; --p ) { *(p+1) = *p; } *p_insert = elem; ++this->longth; } void sqlist::deletesqlist(int index) { if (index<0 || index>this->longth) { exit(0); } for (ElemType *p=&(this->elem[index-1]);p!=&(this->elem[longth-1]);++p) { *p = *(p+1); } --this->longth; } void sqlist::print() { cout<<"the list items:"<<endl; for (int i=0;i!=this->longth;++i) { cout<<this->elem[i]<<endl; } } int main() { sqlist *L = new sqlist(); L->insertsqlist(1,1); L->insertsqlist(2,2); L->insertsqlist(3,3); L->print(); L->deletesqlist(2); L->print(); getchar(); return 0; }