顺序表

来源:互联网 发布:淘宝人工客服时间 编辑:程序博客网 时间:2024/06/10 03:28
const int DefaultSize=100;template<typename Type>class SeqList{public:SeqList(int sz=DefaultSize):m_nmaxsize(sz),m_ncurrentsize(-1){if (sz>0){m_elements = new Type[m_nmaxsize];}}~SeqList(){delete[] m_elements;}int Length() const{return m_ncurrentsize+1;}int Find(Type x) const;int IsElement(Type x) const;int Insert(Type x,int i);int Remove(Type x);int IsEmpty(){return m_ncurrentsize == -1;}int IsFull(){return m_ncurrentsize == m_nmaxsize-1;}Type Get(int i){return i<0|| i>m_ncurrentsize?(cout<<"cant find the element"<<endl,0):m_elements[i];}void Print();private:Type *m_elements;const int m_nmaxsize;int m_ncurrentsize;};template<typename Type> int SeqList<Type>::Find(Type x) const{for (int i=0;i<m_ncurrentsize;i++){if (m_elements[i]==x){return i;}}cout<<"can't find the element you want to find"<<endl;return -1;}template<typename Type> int SeqList<Type>::IsElement(Type x) const{if (Find(x)==-1){return 0;}return 1;}template<typename Type>int SeqList<Type>::Insert(Type x, int i){if (i<0 || i>m_ncurrentsize+1 || m_ncurrentsize ==m_nmaxsize-1){cout<<"the operate is illegal"<<endl;return 0;}m_ncurrentsize++;for (int j=m_ncurrentsize;j>i;j--){m_elements[j]=m_elements[j-1];}m_elements[i]=x;return 1;}template<typename Type> int SeqList<Type>::Remove(Type x){int size = m_ncurrentsize;for (int i=0;i<m_ncurrentsize;){if (m_elements[i]==x){for (int j=i;j<m_ncurrentsize;j++){m_elements[j]=m_elements[j+1];}m_ncurrentsize--;continue;}i++;}if (size==m_ncurrentsize){cout<<"can't find the element you want to remove"<<endl;return 0;}return 1;}template<typename Type> void SeqList<Type>::Print(){for (int i=0;i<=m_ncurrentsize;i++){cout<<i+1<<":\t"<<m_elements[i]<<endl;}cout<<endl<<endl;}

下面为测试代码:

#include <iostream>#include "SeqList.h"using namespace std;int main(){SeqList<int> test(15);int array[15] ={5,5,5,5,5,5,5,55,5,5,5,5,5,5,5};for(int i=0;i<15;++i){test.Insert(array[i],0);}test.Insert(1,0);cout<<(test.Find(0)?"can be found":"Be found")<<0<<endl<<endl;test.Remove(7);test.Print();test.Remove(9);return 0;}


 


 

原创粉丝点击