C++顺序表的实例代码
本文实例为大家分享了C++实现顺序表的具体代码,供大家参考,具体内容如下
#includeusingnamespacestd; typedefintDataType; classSeqList { public: SeqList() :_a(NULL) ,_size(0) ,_capacity(0) {} SeqList(constSeqList&s) :_a(newDataType[s._size]) ,_size(s._size) ,_capacity(s._capacity) { memcpy(_a,s._a,sizeof(DataType)*s._size); } SeqList&operator=(constSeqList&s) { if(this!=&s) { DataType*tmp=newDataType[s._size]; delete[]_a; _a=tmp; memcpy(_a,s._a,sizeof(DataType)*s._size); _size=s._size; _capacity=s._capacity; } return*this; } //SeqList&operator=(SeqLists)//若传引用会改变引用对象的值 //{ //swap(_a,s._a); //swap(_size,s._size); //swap(_capacity,s._capacity); //return*this; //} ~SeqList() { if(_a) { delete[]_a; } } voidPushBack(DataTyped) { CheckCapacity(); _a[_size]=d; _size++; } voidPopBack() { if(_size>0) { _size--; } else { cout<<"顺序表为空"< 0;i--) { _a[i]=_a[i-1]; } _a[0]=d; ++_size; } voidPopFront() { if(_size>0) { inti=0; for(;i<(int)_size;i++) { _a[i]=_a[i+1]; } _size--; } else { cout<<"顺序表为空"< 0) { inti=0; for(;i<(int)_size;i++) { cout<<_a[i]<<""; } cout< 0) { if(pos<=0||pos>_size) { cout<<"pos位置非法"< pos-1;i--) { _a[i]=_a[i-1]; } _a[pos-1]=d; _size++; } } else { PushFront(d); } } voidErase(size_tpos)//删除pos位置的数据 { if(_size>0) { if(pos<=0||pos>_size) { cout<<"pos位置非法"< 以下为测试函数
#include"SeqList.h"; voidTest1() { SeqLists1; s1.PushBack(1); s1.PushBack(2); s1.PushBack(3); s1.PushBack(4); s1.Print(); SeqLists2(s1); s2.Print(); s2.PopBack(); s2.PopBack(); s2.PopBack(); s2.PopBack(); s2.PopBack(); s2.Print(); s2.PushFront(4); s2.PushFront(3); s2.PushFront(2); s2.PushFront(1); s2.Print(); s2.PopFront(); s2.Print(); s2.PopFront(); s2.PopFront(); s2.PopFront(); s2.PopFront(); s2.PopFront(); SeqLists3; s3=s1; s3.Print(); } voidTest2() { SeqLists1; s1.PushBack(1); s1.PushBack(2); s1.PushBack(3); s1.PushBack(4); s1.Print(); //s1.Insert(1,0); //s1.Print(); /*s1.Erase(1); s1.Erase(1); s1.Erase(1); s1.Erase(1); s1.Print();*/ inti=s1.Find(5); cout<以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。