08. 已知在维数组 A[m +n]中依次存放两个线性表(a), a2, a3,.. ,am)和(b, b2.3."",bn).编写个函数,将数组中两个顺序表的位置互换,即将(b, b2, b3,", b,)放在(a), C2- a3."..,am)的前面。
时间: 2024-03-10 11:46:32 浏览: 108
二维数组的定义:-数据结构第五章数组与广义表
可以先将数组中前半部分和后半部分分别翻转,然后再将整个数组翻转即可。
具体实现方法如下:
```c
void swapLinearList(int A[], int m, int n) {
// 翻转前半部分
for (int i = 0; i < m / 2; i++) {
int temp = A[i];
A[i] = A[m - i - 1];
A[m - i - 1] = temp;
}
// 翻转后半部分
for (int i = m; i < (m + n) / 2; i++) {
int temp = A[i];
A[i] = A[m + n - i - 1];
A[m + n - i - 1] = temp;
}
// 翻转整个数组
for (int i = 0; i < (m + n) / 2; i++) {
int temp = A[i];
A[i] = A[m + n - i - 1];
A[m + n - i - 1] = temp;
}
}
```
其中,参数 `m` 表示第一个线性表的长度,参数 `n` 表示第二个线性表的长度。在函数内部,先将前半部分和后半部分分别翻转,然后再将整个数组翻转。最终,第一个线性表就被放到了第二个线性表的前面。
阅读全文