利用原表的存储空间将顺序表(a1,a2,……,an)逆置为(an,an-1,………a1)。
#include <stdio.h>
#include <stdlib.h>
3:
4: # define MAXSIZE 10
struct {
int * base;
int length;
8: } sqlist ;
9:
void reverseSQ(sqlist *l) {
int low = 0 , high = l->length - 1;
int buf , i;
13:
for(i = 0; i < l->length / 2; i++)
15: {
16: buf = l->base[low] ;
17: l->base[low] = l->base[high];
18: l->base[high] = buf;
19: low++;
20: high--;
21: }
22: }
23:
int main()
25: {
26: sqlist l;
int a , i = 0;
/*创建一个顺序表*/
int) * MAXSIZE);
30: l.length = 0;
31:
/*输入数据*/
) ;
);
, &a);
36:
while(a != -1 && i <= 9)
38: {
39: l.base[i] = a;
40: l.length++;
41: i++;
, &a);
43: }
44:
/*输出原顺序表中的数据*/
);
47:
for(i = 0; i < l.length; i++)
, l.base[i]);
50:
);
52:
/*就地逆置顺序表*/
54:
55:
/*输出逆置后的顺序表中的数据*/
);
58:
for(i = 0; i < l.length; i++)
, l.base[i]);
61:
return 0;
63: }