- 顺序表逆置
王道:设计一个高效的算法,将顺序表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#include #include #include #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); }



