📄 顺序表插入查找删除.cpp
字号:
#include<iostream>
using namespace std;
//*********************
template<class T> class seqlist {
T *data;
int maxsize;
int last;
public:
seqlist(int sz);
~ seqlist() { delete[]data; }
int find(T &x);
int insert(T &x, int i);
int remove(T &x);
int isfull()
{
return (last==maxsize-1);
}
T get(int i)
{
return i< 0||i> last? NULL :data[i];
}
};
//--------------------------------------------
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(T &x) {
int i = 0;
while(i<=last && data[i]!=x) i++;
if(i> last) return -1;
else return i;
}
//----------------------------------------------
template <class T> int seqlist<T>::insert(T &x,int i) {
if(i < 0 || i > last+1 || last==maxsize-1) //插入位置最重要
return 0;
else
{
last++;
for(int j = last ; j > i && j > 0 ; 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)
{
last--;
for(int j = i ; j <= last; j++)
data[j] = data[j+1];
return 1;
}
else return 0;
}
//*****************************************
void main() {
seqlist<int> s(5);
int n,j = 0;
while(!s.isfull())
{
cout<<"insert the number"<<" ";
cin>>n;
s.insert(n,0);
}
cout<<"插入结果为:"<<endl;
while(s.get(j)!=NULL)
{
cout<<s.get(j)<<" ";
j++;
}
cout<<endl;
//-------------------
int m;
cout<<"请输入要查找的数:"<<endl;
cin>>m;
if(s.find(m)!=-1)
cout<<"所查找的数为第"<<s.find(m)+1<<"个数"<<endl;
else
cout<<"查找失败"<<endl;
//-----
cout<<"请输入要删除的数:"<<endl;
cin>>m;
int k = s.remove(m);
if(k)
{
cout<<"删除后的结果为:"<<endl;
j = 0;
while(s.get(j)!=NULL)
{
cout<<s.get(j)<<" ";
j++;
}
cout<<endl;
}
else cout<<"删除失败"<<endl;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -