请写一个算法将顺序存储结构的线性表(a1...an)逆置为(an...a1),要求使用最少的附加空间
时间: 2023-04-01 21:04:34 浏览: 315
实现对顺序表的逆置
可以使用两个指针,一个指向表头,一个指向表尾,然后交换它们所指向的元素,然后头指针向后移动,尾指针向前移动,直到头指针大于等于尾指针为止。具体实现如下:
void reverse(int a[], int n) {
int i, temp;
for (i = ; i < n / 2; i++) {
temp = a[i];
a[i] = a[n - i - 1];
a[n - i - 1] = temp;
}
}
其中,a[]为存储线性表的数组,n为线性表的长度。这个算法的空间复杂度为O(1),时间复杂度为O(n/2)。
阅读全文