#include<iostream> #include "stdlib.h" using namespace std; const int DefaultSize=100; template<class T> class SeqList{ public: T *data; int maxSize; int last; void reSize(int newSize); SeqList(int sz=DefaultSize); ~SeqList(){ delete[] data; } int Size(){ return maxSize; } int Length(){ return last+1; } int Search(T x); void setData(int i,T x){ if(i>0&&i<=last+1) data[i-1]=x; } bool Insert(int i,T x); bool Remove(int i,T x); bool IsEmpty(){ return(last==-1)?true:false; } bool IsFull(){ return(last==maxSize-1)?true:false; } void output(); }; template <class T> SeqList<T>::SeqList(int sz){ if(sz>0){ maxSize=sz; last=-1; data=new T[maxSize]; if(data==NULL){ cerr<<"存储分配失误!"<<endl; exit(1); } } } template<class T> void SeqList<T>::reSize(int newSize){ if(newSize<=0){ cerr<<"无效的数组大小"<<endl; return; } if(newSize!=maxSize){ T *newarray=new T[maxSize]; if(newarray==NULL){ cerr<<"存储分配错误"<<endl; exit(1); } int n=last+1; T * srcptr=data; T * destptr=newarray; while(n--) * destptr++=* srcptr++; delete[]data; data=newarray; maxSize=newSize; } } template<class T> int SeqList<T>::Search(T x){ for(int i=0;i<=last;i++){ if(data[i]==x) return i+1; } return 0; } template<class T> bool SeqList<T>::Insert(int i,T x){ if(last==maxSize-1) return false; if(i<0||i>last+1) return false; for(int j=last;j>=i;j--) data[j+1]=data[j]; data[i]=x; last++; return true; } template<class T> bool SeqList<T>::Remove(int i,T x){ if(last==-1) return false; if(i<1||i>last+1) return false; x=data[x-1]; for(int j=i;j<last;j++) data[j-1]=data[j]; last--; return true; } template<class T> void SeqList<T>::output(){ cout<<"顺序表当前元素最后位置为:"<<last<<endl; for(int i=0;i<=last;i++){ cout<<"#"<<i+1<<":"<<data[i]<<endl; } } void main(){ SeqList<int> seqList(10); int array[10]={1,2,3,4,5,6,7,8,9,10}; for(int i=0;i<10;i++){ seqList.Insert(i,array[i]); } seqList.reSize(11); seqList.Insert(2,100); seqList.output(); seqList.Remove(10,10); seqList.setData(1,99); seqList.output(); cout<<seqList.Search(100); }
自己敲的,参考教材《数据结构(第二版)》殷人昆 著,都是些简单的实现,不要见笑了。到5月底更新算法分析与设计。
运行截图:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。