编写算法实现顺序表的就地逆置,即利用原表的存储空间将线性表(a1,a2,...,an)逆置为(an,an-1,...,a1),并分析设计的算法时间复杂度。
函数接口定义:
void reverse(SeqList slist);
裁判测试程序样例:
#include <stdio.h>
#include <stdlib.h>
typedef int DataType; //数据元素类型定义为整型
struct List
{
int Max; //顺序表的最大容量
int n; //顺序表长度
DataType *elem; //顺序表元素起始位置
};
typedef struct List *SeqList; //顺序表类型定义
SeqList SetNullList_Seq(int m) //创建空顺序表
{
//申请结构体List空间
SeqList slist = (SeqList)malloc(sizeof(struct List));
if (slist != NULL)
{
slist->elem = (DataType *)malloc(sizeof(DataType) * m);
//申请顺序表空间,大小为m个DataType空间
if (slist->elem)
{
slist->Max = m; //顺序表的最大值
slist->n = 0; //顺序表长度赋值为0
return (slist);
}
else
free