/*
c++ 实现顺序表类(初始化、输入、插入与删除)<<计算机软件技术基础 徐士良>>
*/
#include<iostream>
using namespace std;
template<class T>
class sq_LList
{
private:
int mm;//容量
int nn;//长度
T *v; // 顺序表存储控件首地址
public:
sq_LList(){mm = 0; nn = 0; return;}
sq_LList(int); //建立空顺序表,申请存储空间
void prt_sq_LList();
int flag_sq_LList();
void ins_sq_LList();
void ins_sq_LList(int, T);
void del_sq_LList(int);
};
//
template <class T>
sq_LList<T>::sq_LList(int m) // 建立空顺序表
{
mm = m;
v = new T[mm]; //动态申请存储空间
nn = 0;
return;
}
// 顺序输出顺序表中的元素与顺序表长度
template<class T>
void sq_LList<T>::prt_sq_LList()
{
int i;
cout<<"nn = "<<nn<<endl;
for(int i = 0; i < nn; i++)
{
cout << v[i] << endl;
}
return;
}
// 检查顺序表的状态
template<class T>
int sq_LList<T>::flag_sq_LList()
{
if(mm == nn) return -1;
if(nn == 0) return(0);
return;
}
// 在表的指定元素前插入新元素
template<class T>
void sq_LList<T>::ins_sq_LList(int i, T b)
{
int k;
if(nn == mm)
{
cout << "overflow" << endl;
return;
}
if(i > nn) i = nn + 1;
if(i < 1) i = 1;
for(k = nn;k >= 1; k--)
v[k] = v[k - 1];
v[i -1] = b;
nn = nn + 1;
return;
}
// 从顺序表中删除指定元素
template<class T>
void sq_LList<T>::del_sq_LList(int i)
{
int k;
if(nn == 0)
{
cout << "underflow!" << endl;
return;
}
if(i < 1 || i < nn )
{
cout << "Not this element in the list!" << endl;
return;
}
for(k = i; k < nn; k++)
{
v[k - 1] = v[k];
}
nn = nn - 1;
return;
}
c++ 实现顺序表类(初始化、输入、插入与删除)<<计算机软件技术基础 徐士良>>
最新推荐文章于 2022-07-09 17:11:31 发布