##c/c++ 顺序表的简单插入删除`
#include
using namespace std;
#define MaxSize 100
class SqList
{
private:
typedef struct
{
char data[MaxSize];//数据元素
int num;//数据个数
}List,*PList;
PList L;
public:
SqList()//顺序表初始化
{
L = new List;
}
~SqList()//释放顺序表
{
delete L;
}
void InPut()//输入
{
int n;
cout << "顺序元素个数为" << endl;
cin >> n;
L->num = n;
cout << "输入各元素" << endl;
for (int i = 0; i < n; ++i)
{
cin>>L->data[i];
}
cout << "输入完成" << endl;
}
void OutCome()//输出顺序表各元素
{
cout << "顺序表中的元素有" << endl;
for (int i = 0; i < L->num; ++i)
{
cout << L->data[i] << endl;
}
cout << "元素长度为" << L->num << endl;
}
void Insert()//插入元素
{
cout << "要插入元素的位置" << endl;
int j;
cin >> j;
if (j > L->num) { cout << "输入有误" << endl; return; }
cout << "输入要插入的元素" << endl;
char t;
cin >> t;
for (int i = L->num; i != j-1; L->data[i] = L->data[i - 1], --i);//所有位于要插入后的都要向后移一位
L->data[j-1] = t;//该位置插入元素
cout << "插入完成" << endl;
++L->num;//长度加 一
cout << "插入后的结果为" << endl;
OutCome();
}
void deleted()//删除
{
char e;
cout << "输入要删除的元素" << endl;
cin >> e;
int i;
for ( i = 0; i < L->num && L->data[i] != e; ++i);
if (i == L->num)
{
cout << "没有此元素" << endl; return;
}
else
for (; i < L->num; L->data[i] = L->data[i +1], ++i);//所有位置要删除位置的元素都要前一位
--L->num;//长度减一
cout << "删除后的结果为" << endl;
OutCome();
}
};
int main()
{
SqList sq;
sq.InPut();
sq.OutCome();
sq.Insert();
sq.deleted();
}
`