逆置顺序表
1000(ms)
10000(kb)
3339 / 16453
建立长度为n的顺序表,然后将表中的数据元素逆置,即若表中原来的数据元素序列为(a0,a1,a2,…,an),则逆置后的数据元素序列为(an,an-1,an-2,…,a1,a0)。(数据类型为字符型)
输入
第一行为顺序表的长度n;第二行为顺序表中的数据元素.
输出
输出为逆置后的顺序表.
样例输入
7
ABCDEFG
样例输出
G F E D C B A
#include<iostream>
#include<stdio.h>
#include<algorithm>
using namespace std;
typedef struct{
int length;
char data[1000];
}sqlList;
void InitList(sqlList *&L){
L = (sqlList *)malloc(sizeof(sqlList));
L->length = 0;
}
void insertList(sqlList *&L,int e){
int len = L->length;
L->data[len] = e;
L->length++;
}
void reverseList(sqlList *&L){
int i=0;
int j=L->length-1;
while(i<j){
swap(L->data[i++],L->data[j--]);
}
}
int main(){
int n;
sqlList *s1;
InitList(s1);
scanf("%d",&n);
getchar();
for(int i=0; i<n;i++){
char x;
scanf("%c",&x);
insertList(s1,x);
}
reverseList(s1);
for(int i=0;i<s1->length;i++){
cout<<s1->data[i]<<" ";
}
return 0;
}