顺序表
void InitSqList(SqList &L){
L.data = new Elem;
L.length = 0;
}
bool isEmpty(SqList L){
return L.length==0;
}
void printSqList(SqList L){
if (isEmpty(L))return ;
for (int i = 0; i < L.length; ++i) {
cout<<L.data[i]<<" ";
}
cout<<endl;
}
void insertSqList(SqList &L,Elem e){
L.data[L.length]=e;
L.length++;
}
void insertDatas(SqList &L){
srand(10);
for (int i = 0; i < 20; ++i) {
Elem data = (Elem)rand()%100;
insertSqList(L,data);
}
}
void InsertElem(SqList &L,int i,Elem e){
if (i<1||i>L.length){
return;}
if (isEmpty(L))L.data[0]=e;
else{
//从i到length后移
for (int j = L.length; j >= i; --j) {
L.data[j+1]=L.data[j];
}
//插入第i-1个位置
L.data[i-1]=e;
L.length++;
}
}
void DeleteElem(SqList &L,int i,Elem &elem){
if (i<1 || i>L.length)return;
elem = L.data[i-1];
//后面第i个往前移动
for (int j = i; j < L.length; ++j) {
L.data[j-1]=L.data[j];
}
L.length--;
}
int GetElem(SqList L,Elem e){
for (int i = 0; i < L.length; ++i) {
if (e==L.data[i]){
return i+1;
}
}
return -1;
}
void LocateElem(SqList L,int i,Elem &e){
if (i<1||i>L.length){
return ;
}
e = L.data[i-1];
}