利用原表的存储空间将顺序表(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: }

相关文章: