问题:试写一算法,实现顺序表的就地逆置,即利用原表的存储空间将线性表(a1,a2,...,an)逆置为(an,an-1,...,a1)
算法思想:观察原表和新表顺序,逆置后的线性表是将原表相应位置的元素进行交换,即交换第一个和最后一个,第二个和倒数第二个,依此类推
源码
//顺序表结构体,表中的元素以整数为例
typedef struct
{
int *elem;
int length;
// int listsize;该项为顺序表的大小,本题中未使用
}SqList;
//逆置算法
void InverseLinearList(SqList *list)
{
int i=0;
for (i=0; i<list->length/2; ++i)
{
//因为要求用原表空间,所以交换时可以使用以下两种方法
//据说这种交换方式,在有些面试当中会考查
/*li

本文介绍了如何通过元素交换实现顺序表的就地逆置,给出了一段C语言实现的逆置算法源码,该算法交换顺序表中对应位置的元素,达到逆置效果,并在主函数中展示了输入元素、逆置前后的顺序表打印。
最低0.47元/天 解锁文章
2686





