一、题目
设计一个算法,实现将顺序表就地逆置,即利用原顺序表的存储单元将数据元素序列(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、定义两数交换函数。文章来源:https://www.toymoban.com/news/detail-715315.html
2、用循环遍历顺序表中的元素,依次调用两数交换函数,将顺序表中的第一个元素与最后一个元素的值互换,再将第二个元素与倒数第二个的值互换,以此类推,直到顺序表完成倒序。文章来源地址https://www.toymoban.com/news/detail-715315.html
三、程序实现
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]);
}
到了这里,关于数据结构(C语言):顺序表就地逆置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!