初始定义:
typedef struct {
ElemType* elem;
int length;
int listsize;
}SqList;
int InitList(SqList &L) {
L.elem = (ElemType*)malloc(LIST_INIT_SIZE * sizeof(ElemType));
if (!L.elem)return 0;
L.length = 0;
L.listsize = LIST_INIT_SIZE;
return 1;
};
数据进入:
int ListInsert(SqList& L, int i, ElemType e) {
if (i<1 || i>L.length + 1)return 0;
if (L.length >= L.listsize)return 0;
for (int j = L.length; j >= i; j--)
{
L.elem[j] = L.elem[j - 1];
};
L.elem[i - 1] = e;
L.length++;
return 1;
}
int SetList(SqList &L) {
int size = 0;
cout << "请输入你要插入的数据的数量" << endl;
cin >> size;
if (size == 0) return 0;
for (int g=0; g <size;g++) {
int h;
cout << "请输入数据" << endl;
cin >> h;
L.elem[g] = h;
L.length++;
}
cout << "插入完毕" << endl;
return 1;
}
数据弹出:
int DeltList(SqList& L, int i, ElemType &e) {
if (i<1||i >= L.length) return 0;
e =L.elem[i - 1];
for (int j = i; j < L.length ; j++) {
L.elem[j - 1] = L.elem[j];
}
L.length--;
return 1;
};
int GetElem(SqList L, int i) {
if (i < 1 || i >= L.length)return 0;
return L.elem[i - 1];
}
int LocateElem(SqList L, ElemType e) {
for (int i = 0; i < L.length; i++ ) {
if (L.elem[i] == e) return i + 1;
}
return 0;
}
void ShowList(SqList L) {
for (int i = 0; i < L.length; i++) {
cout << L.elem[i] << endl;
}
}
运行代码:
int main() {
SqList L1;
InitList(L1);
SetList(L1);
ShowList(L1);
int p = 10;
cout << LocateElem(L1, p) << endl;
system("pause");
return 0;
}