2022.10.02数据结构逆置顺序表。这题没记错应该是这次作业第一个拌着的题后来拐回来写了。
任务描述
编程要求
根据提示,在右侧编辑器补充函数rev的代码,使用顺序表L的空间就地逆置L。
测试说明
平台会对你编写的代码进行测试:
各种格式
输入格式
输入包括两行。
第一行为顺序表中元素个数n。
第二行为空格隔开的n个整数。
输出格式
输出包括两行。
第一行为顺序表逆置之前的元素。每个数据后一个空格。
第二行为顺序表逆置之后的元素。每个数据后一个空格。
样例输入
5
1 2 3 4 5
样例输出
1 2 3 4 5
5 4 3 2 1
开始你的任务吧,祝你成功!
c++代码
#include <stdio.h>
#include <stdlib.h>
#include "sqlist.h"
/**
* 就地逆置顺序表
*/
void rev(SqList* &L) {
//请在下面编写代码
/******************Begin******************/
int i;
int temp;
for(i=0;i<L->length/2;i++)
{
temp=L->data[i];
L->data[i]=L->data[L->length-i-1];
L->data[L->length-i-1]=temp;
}
/*******************End*******************/
}
int main(int argc, char const *argv[])
{
int n;
scanf("%d", &n);
int *a = (int*)malloc(sizeof(int) * n);
for (int i = 0; i < n; i++)
scanf("%d", &a[i]);
SqList* L;
InitList(L); //初始化顺序表
CreateList(L, a, n);//创建顺序表
DispList(L); //输出顺序表
rev(L); //逆置顺序表
DispList(L); //输出逆置后的顺序表
DestroyList(L); //销毁顺序表
free(a); //是否数组a
return 0;
}