增删改查一应俱全
#include <iostream>
#include<stdexcept>
using namespace std;
const int MAX_SIZE = 100;
class SeqList {
int data[MAX_SIZE];
int length;
public:
SeqList() :length(0) {}
bool insertElem(int index, int val);//插入元素
bool deleteElem(int index);//删除元素
bool updateElem(int index,int val);//更新元素
int Getlength();//返回当前表的长度
int searchElem(int val);//查找元素所在下标
bool AppendElem(int val);//尾部添加元素
void printElem();
};
bool SeqList::insertElem(int index, int val) {
if (index<0 || index>length || index >= MAX_SIZE) {
throw exception("数组下标越界");
return false;
}
for (int i = length - 1; i >=index; i--) {
data[i + 1] = data[i];
}
data[index] = val;
length++;
return true;
}
bool SeqList::deleteElem(int index)
{
if (index<0 || index>length || index >= MAX_SIZE) {
throw exception("数组下标越界");
return false;
}
for (int i = index; i < length - 1; i++) {
data[i] = data[i + 1];
}
length--;
return true;
}
bool SeqList::updateElem(int index, int val)
{
if (index<0 || index>length || index >= MAX_SIZE) {
throw exception("数组下标越界");
return false;
}
return data[index] = val;
}
int SeqList::Getlength()
{
return length;
}
int SeqList::searchElem(int val)
{
for (int i = 0; i < length; i++) {
if (data[i] == val) {
return i;
}
}
return -1;
}
bool SeqList::AppendElem(int val)
{
if (length >= MAX_SIZE) {
throw exception("超过数组容量");
return false;
}
length++;
data[length-1] = val;
return true;
}
void SeqList::printElem()
{
for (int i = 0; i < length; i++) {
cout << data[i] << " ";
}
cout << endl;
}
int main() {
SeqList *list=new SeqList();
list->AppendElem(1);
list->AppendElem(2);
list->AppendElem(3);
list->AppendElem(4);
list->printElem();
list->insertElem(0, 520);
list->insertElem(0, 1314);
list->printElem();
list->deleteElem(5);
list->printElem();
list->updateElem(0, 7759);
list->printElem();
if (list->searchElem(1314)) {
cout << "元素在数组中";
}
}
可供参考