📄 seqlist.h
字号:
#ifndef SeqList_H
#define SeqList_H
#include<iostream.h>
template<class T>
class SeqList
{
private:
T *data;
int MaxSize;
int last;
public:
SeqList(int MaxSize=100);
~SeqList(){delete []data;MaxSize=0;last=-1;}
int Length() const {return last+1;}
int Find(const T& x);
int IsIn(T& x) const;
int Insert(T& x,int i);
int Remove(T& x);
int Next(T& x);
int Prior(T& x);
int IsEmpty() {return last==-1;}
int IsFull() {return last==MaxSize-1;}
void SetSize(int s){MaxSize = s;}
T& operator [](int i) {return data[i];}
const T& operator[](int index)const
{
assert(index>=0 && index<MaxSize);
return data[index];
}
T& Get(int i) {return i<0||i>last?NULL:data[i];}
friend ostream& operator << (ostream& os,const SeqList<T>& p);
friend istream& operator >> (istream& is,SeqList<T>& p);
};
template<class T>
SeqList<T>::SeqList(int sz)
{
if(sz>0){
MaxSize = sz;
last =-1;
data = new T[MaxSize];
}
}
template<class T>
int SeqList<T>::Find (const T& item)
{
for(int i=0;i<=last;i++)
if(data[i]==item)
return i;
return -1;
}
template<class T>
int SeqList<T>::IsIn(T& x) const
{
int i=0,found=0;
while(i<=last && !found)
if(data[i]!=x) i++;
else found=1;
return found;
}
template<class T>
int SeqList<T>::Insert(T& x,int i)
{
if(i<0||i>last+1||i>MaxSize) return 0;
else{
last++;
for(int j=last;j>i;j--)
data[j]=data[j-1];
data[i]=x;
return 1;
}
}
template<class T>
int SeqList<T>::Remove(T& x)
{
int i=Find(x);
if(i>=0){
for(int j=i;j<=last;j++)
data[j] = data[j+1];
last--;
return 1;
}
return 0;
}
template<class T>
int SeqList<T>::Next(T& x)
{
int i=Find(x);
if(x>=0 && i<last) return i+1;
else return -1;
}
template<class T>
int SeqList<T>::Prior(T& x)
{
int i=Find(x);
if(i>0 && i<last) return i-1;
else return -1;
}
template<class T>
ostream& operator << (ostream& os,const SeqList<T>& p)
{
for(int i=0;i<=p.last;i++)
os<<p.data[i]<<" ";
return os;
}
template<class T>
istream& operator >> (istream& is,SeqList<T>& p)
{
T item;
is>>item;
p.Insert(item,p.last+1);
return is;
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -