#include <bits/stdc++.h>
#include <stdio.h>
#include <stdlib.h>
#include <cstdlib>
#define MaxSize 10
using namespace std;
//顺序表的定义、插入、删除、查询
typedef struct {
int data[MaxSize];
int length;
} SqList;
void InitList(SqList &L) {
for (int i = 0; i < MaxSize; i++)
L.data[i] = 0; //将所有数据元素设置为默认初始值
L.length = 0; //初始值的长度为0
}
bool ListInsert(SqList &L, int i, int e) {
if (i < 1 || i > L.length + 1) {
return false; //判断i的范围是否有效
}
if (L.length > MaxSize) {
return false; //当前存储空间已满,不能插入
}
for (int j = L.length; j >= i; j--) //将第i个元素后移
L.data[j] = L.data[j - 1]; //
L.data[i - 1] = e; //将第i个元素放入e
L.length++; // length长度加1
return true;
}
int ListDelete(SqList &L, int i, int &e) {
if (i < 1 || i > L.length) return false;//判断i的范围是否有效
e = L.data[i - 1];
for (int j = i; j <= L.length; j++) {
L.data[j - 1] = L.data[j];
}
L.length--;
return true;
}
int LocateElen(SqList L,int e){
for(int i = 0;i < L.length;i++)
if(L.length = e)
return i+1;
return 0;
}
int main() {
SqList L; //声明一个顺序表
InitList(L); //初始化顺序表
//顺序表的插入
//....此处省略一些代码,插入几个元素
ListInsert(L, 1, 0);
ListInsert(L, 2, 1);
ListInsert(L, 3, 2);
ListInsert(L, 4, 3);
ListInsert(L, 5, 4);
//顺序表的删除
int e = 3,i = 4;
if (ListDelete(L, i, e)) {
printf("已删除第%d个元素,元素为 %d\n",i, e);
} else
printf("位序不合理,现在表总长%d,删除失败\n",L.length);
//顺序表的查找
LocateElen(L,3);
printf("查找的值为%d",e);
return 0;
}