一、题目
设计一个算法,实现将顺序表就地逆置,即利用原顺序表的存储单元将数据元素序列(a0,a1,…,an-1)逆置为(an-1,…, a1,a0)。
本题所使用的数据结构定义如下:
typedef int ElemType ;
顺序表的数据结构定义:
#define MAX_SIZE 100
typedef struct sqlist
{ ElemType List[MAX_SIZE] ;
int length ;
} SqList ;
二、算法思路
1、定义两数交换函数。
2、用循环遍历顺序表中的元素,依次调用两数交换函数,将顺序表中的第一个元素与最后一个元素的值互换,再将第二个元素与倒数第二个的值互换,以此类推,直到顺序表完成倒序。
文章来源:https://uudwc.com/A/woyX5
三、程序实现
void Swap(ElemType* a, ElemType* b)
{
ElemType temp = *a;
*a = *b;
*b = temp;
}
void Reverse(SqList* L)
{
for (int i = 0; i < L->length/2; i++)
Swap(&L->List[i], &L->List[L->length - 1 - i]);
}
文章来源地址https://uudwc.com/A/woyX5