```C++ #include #define MaxSize 50 typedef struct { int data[MaxSize]; int length; } SqList; void PrintList(SqList List) { printf("data["); for (int i = 0; i < List.length; ++i) { if (i == List.length - 1) { printf("%d", List.data[i]); } else { printf("%d, ", List.data[i]); } } printf("], Length=%d\n", List.length); } //按位查找--位序 int ListGetElement(SqList List, int i) { if (i < 1 || i > List.length + 1) { return 0; } return List.data[i - 1]; } //按值查找--位序 int ListSearchElement(SqList List, int e) { for (int i = 0; i < List.length; ++i) { if (List.data[i] == e) { return i + 1; } } return 0; } //顺序插入--位序 bool ListInsert(SqList &List, int i, int e) { if (i < 1 || i > List.length + 1) { return false; } if (List.length >= MaxSize) { return false; } for (int j = List.length; j >= i; j--) { List.data[j] = List.data[j - 1]; } List.data[i - 1] = e; List.length++; return true; } //删除元素--位序 bool ListDelete(SqList &List, int i, int &e) { if (i < 1 || i > List.length) { return false; } e = List.data[i - 1]; for (int j = i; j < List.length; ++j) { List.data[j - 1] = List.data[j]; } List.length--; return true; } bool ListSetElement(SqList &List, int i, int e) { if (i < 1 || i > List.length) { return false; } List.data[i - 1] = e; return true; } int main() { SqList sqList; for (int i = 0; i < 10; ++i) { ListInsert(sqList, i + 1, i + 1); } PrintList(sqList); ListInsert(sqList, 11, 11); PrintList(sqList); ListInsert(sqList, 51, 51); PrintList(sqList); int result = ListGetElement(sqList, 10); printf("Get result=%d\n", result); result = ListSearchElement(sqList, 8); printf("Search result=%d\n", result); ListDelete(sqList, 7, result); printf("Delete result=%d\n", result); PrintList(sqList); ListSetElement(sqList, 10, 100); PrintList(sqList); return 0; } ```