数据结构--每天一题-王道-顺序表逆置
顺序表逆置
王道:设计一个高效的算法,将顺序表L的所有元素逆置,要求算法的空间复杂度为O(1)
出处:除了王道
西南科技大学oj-942
https://acm.swust.edu.cn/#/problem/942/-1
顺序表逆置,可以运行的!!!!!
tips:后缀必须cpp
tips:王道是整数,oj的是字符,本质上没区别
// An highlighted block
//设计一个高效的算法,将顺序表L的所有元素逆置,要求算法的空间复杂度为O(1)
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <iostream>
#define MaxSize 50
typedef char ElemType;
typedef struct {
ElemType data[MaxSize];
int length;
}SqList;
void InitList(SqList& L)
{
L.length = 0;
memset(L.data, 0, sizeof(ElemType));
}
void PrintList(SqList& L)
{
for (int i = 0; i < L.length; i++)
{
printf("%c ", L.data[i]);
}
}
//普通交换而已
//0到length-1
//所以i,length-1-i
//t = a; a = b; b = t;
SqList Reverse(SqList& L)
{
ElemType t;
for (int i = 0; i < L.length / 2; i++)
{
t = L.data[i];
L.data[i] = L.data[L.length - 1 - i];
L.data[L.length - 1 - i] = t;
}
return L;
}
int main()
{
SqList L; int i, n;
InitList(L);
char c[20];
scanf("%d", &n);
L.length = n;
fgets(c,10,stdin);
fgets(L.data, 10, stdin);
Reverse(L);
PrintList(L);
}