```c++ #include <iostream> using namespace std; #define MAX_SIZE 100 // 初始化线性表 void initList(int arr[], int &n) { n = 0; } // 创建线性表 void createList(int arr[], int &n) { cin >> n; for (int i = 0; i < n; i++) { cin >> arr[i]; } } // 插入数字到线性表中 void insertNum(int arr[], int &n, int x, int i) { if (n >= MAX_SIZE) { cout << "线性表已满,无法插入" << endl; return; } if (i < 0 || i > n) { cout << "插入位置非法" << endl; return; } for (int j = n; j > i; j--) { arr[j] = arr[j-1]; } arr[i] = x; n++; } // 删除线性表中的数字 void deleteNum(int arr[], int &n, int i) { if (n <= 0) { cout << "线性表为空,无法删除" << endl; return; } if (i < 0 || i >= n) { cout << "删除位置非法" << endl; return; } for (int j = i; j < n-1; j++) { arr[j] = arr[j+1]; } n--; } // 在线性表中查找数字 int searchNum(int arr[], int n, int x) { for (int i = 0; i < n; i++) { if (arr[i] == x) { return i; } } return -1; } // 遍历线性表 void traverseList(int arr[], int n) { for (int i = 0; i < n; i++) { cout << arr[i] << " "; } cout << endl; } // 逆置线性表 void reverseList(int arr[], int n) { for (int i = 0, j = n-1; i < j; i++, j--) { int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } } // 合并线性表 void mergeList(int arr1[], int n1, int arr2[], int n2, int arr3[], int &n3) { int i = 0, j = 0, k = 0; while (i < n1 && j < n2) { if (arr1[i] <= arr2[j]) { arr3[k++] = arr1[i++]; } else { arr3[k++] = arr2[j++]; } } while (i < n1) { arr3[k++] = arr1[i++]; } while (j < n2) { arr3[k++] = arr2[j++]; } n3 = n1 + n2; } int main() { int la[MAX_SIZE], lb[MAX_SIZE], lc[MAX_SIZE]; int n, m, x, i; initList(la, n); createList(la, n); cin >> x >> i; insertNum(la, n, x, i); cin >> i; deleteNum(la, n, i); cin >> x; int position = searchNum(la, n, x); if (position != -1) { cout << "数字" << x << "在线性表la中的位置是:" << position << endl; } else { cout << "数字" << x << "在线性表la中未找到" << endl; } initList(lb, m); createList(lb, m); traverseList(la, n); traverseList(lb, m); reverseList(la, n); reverseList(lb, m); int lcSize; mergeList(la, n, lb, m, lc, lcSize); traverseList(lc, lcSize); return 0; } ``` [2024-09-26 00:20:17 | AI写代码神器 | 1743点数解答]