下面列举了静态链表的一些常用操作。
#include <iostream>
#define MaxSize 10
using namespace std;
typedef struct{
int data[MaxSize];
int length;
}sqList;
void InitList(sqList &L){
L.length = 0;
}
bool ListInsert(sqList &L, int i, int e){
if(i < 1 || i > L.length + 1)
return false;
if(L.length >= MaxSize)
return false;
for(int j = L.length; j >= i; j --){
L.data[j] = L.data[j - 1];
}
L.data[i - 1] = e;
L.length += 1;
return true;
}
bool ListDelete(sqList &L, int i, int &e){
if(i < 1 || i > L.length)
return false;
L.data[i - 1] = e;
for(int j = i; j < L.length; j ++){
L.data[j - 1] = L.data[j];
}
L.length --;
return true;
}
int LocateElem(sqList &L, int e){
int i = 0;
for(i = 0; i < L.length; i ++){
if(L.data[i] == e){
return i + 1;
}
}
return 0;
}
int main()
{
sqList L;
InitList(L);
ListInsert(L, 1, 2);
cout << LocateElem(L, 2) << endl;
return 0;
}