1.编写一个算法实现n个整数类型数据的顺序表的逆置。如:原顺序表为1,2,3,4,逆置后为4,3,2,1。
时间: 2023-04-27 18:05:47 浏览: 152
算法步骤如下:
1. 定义两个指针,一个指向顺序表的第一个元素,一个指向最后一个元素。
2. 交换这两个指针所指向的元素,并将指针向中间移动,直到两个指针相遇。
3. 顺序表逆置完成。
具体实现代码如下:
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为顺序表中元素的个数。
相关问题
编写一个算法实现n个整数类型数据的顺序表的逆置。如:原顺序表为1,2,3,4,逆置后为4,3,2,1。
算法实现n个整数类型数据的顺序表的逆置的步骤如下:
1. 定义两个指针,一个指向顺序表的第一个元素,一个指向顺序表的最后一个元素。
2. 交换这两个指针所指向的元素,并将指针向中间移动一位,直到两个指针相遇。
3. 顺序表的逆置完成。
例如,对于顺序表1,2,3,4,逆置的过程如下:
1. 定义两个指针p和q,p指向1,q指向4。
2. 交换p和q所指向的元素,得到4,2,3,1。然后将p向右移动一位,指向2,将q向左移动一位,指向3。
3. 交换p和q所指向的元素,得到4,3,2,1。此时p和q相遇,逆置完成。
最终得到的逆置后的顺序表为4,3,2,1。
用c语言编写一个算法实现n个整数类型数据的顺序表的逆置。如:原顺序表为1,2,3,4,逆置后为4,3,2,1。
要实现顺序表的逆置,可以使用一个循环从表的两端向中间遍历,交换相应位置的元素。
以下是使用C语言编写的算法实现顺序表的逆置:
```c
#include <stdio.h>
#define MAXSIZE 20
typedef struct {
int data[MAXSIZE];
int length;
} SqList;
void ListReverse(SqList *L) {
int i, temp;
for(i = 0; i < L->length / 2; i++) {
temp = L->data[i];
L->data[i] = L->data[L->length - i - 1];
L->data[L->length - i - 1] = temp;
}
}
int main() {
SqList L;
int a[4] = {1, 2, 3, 4};
L.length = 4; for(int i = 0; i < 4; i++) {
L.data[i] = a[i];
}
printf("原顺序表:");
for(int i = 0; i < L.length; i++) {
printf("%d ", L.data[i]);
}
printf("\n");
ListReverse(&L);
printf("逆置后的顺序表:");
for(int i = 0; i < L.length; i++) {
printf("%d ", L.data[i]);
}
printf("\n");
return 0;
}
```
输出结果为:
```
原顺序表:1 2 3 4
逆置后的顺序表:4 3 2 1
```
阅读全文