⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 顺序表插入查找删除.cpp

📁 这个是我的大学作业哦 里面有些很经典的代码 出自清华大学的数据结构课本
💻 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 + -