#include <cstdio>
#include <cstdlib>
const int Maxsize = 1e6+5;
typedef int ElemType;
typedef struct
{
ElemType *ele;
int length;
int maxsize;
} List;
void Swap(int &p, int &q)
{
p = p^q;
q = q^p;
p = p^q;
}
void PrintL(List &L)
{
int i;
for(i = 0; i < L.length-1; i++)
{
printf("%d ", L.ele[i]);
}
printf("%d\n", L.ele[i]);
}
int Find_List(List &L, int k)
{
for(int i = 0; i < L.length; i++)
if(L.ele[i] == k) return 1;
return 0;
}
void Reverse_Sq(List &L, int l, int r)
{
int mid = (r-l)>>1;
for(int i = 0; i <= mid; i++)
{
if(l+i != r-i)
Swap(L.ele[l+i], L.ele[r-i]);
}
}
int Create(List &L)
{
L.ele = (ElemType *)malloc(Maxsize * sizeof(ElemType));
if(!L.ele) exit(-2);
L.length = 0;
L.maxsize = Maxsize;
int m, d, e;
scanf("%d", &m);
for(int i = 0; i < m; i++)
{
scanf("%d", &L.ele[L.length++]);
}
scanf("%d", &e);
while(e--)
{
scanf("%d", &d);
Reverse_Sq(L, 0, m-1);
Reverse_Sq(L, 0, m-d-1);
Reverse_Sq(L, m-d, m-1);
PrintL(L);
}
return 1;
}
int main()
{
List L;
Create(L);
return 0;
}
第一次尝试类,请多指教
#include <cstdio>
#include <cstdlib>
const int Maxsize = 1e6+5;
typedef int ElemType;
class Sqlist
{
private:
typedef struct
{
ElemType *ele;
int length;
int maxsize;
} List;
List L;
public:
Sqlist();
void Swap(int &p, int &q);
void PrintL();
int Find_List(int k);
void Reverse_Sq(int l, int r);
};
void Sqlist::Swap(int &p, int &q)
{
p = p^q;
q = q^p;
p = p^q;
}
void Sqlist::PrintL()
{
int i;
for(i = 0; i < L.length-1; i++)
{
printf("%d ", L.ele[i]);
}
printf("%d\n", L.ele[i]);
}
int Sqlist::Find_List(int k)
{
for(int i = 0; i < L.length; i++)
if(L.ele[i] == k) return 1;
return 0;
}
void Sqlist::Reverse_Sq(int l, int r)
{
int mid = (r-l)>>1;
for(int i = 0; i <= mid; i++)
{
if(l+i != r-i)
Swap(L.ele[l+i], L.ele[r-i]);
}
}
Sqlist::Sqlist()
{
L.ele = (ElemType *)malloc(Maxsize * sizeof(ElemType));
if(!L.ele) exit(-2);
L.length = 0;
L.maxsize = Maxsize;
int m, d, e;
scanf("%d", &m);
for(int i = 0; i < m; i++)
{
scanf("%d", &L.ele[L.length++]);
}
scanf("%d", &e);
while(e--)
{
scanf("%d", &d);
Reverse_Sq(0, m-1);
Reverse_Sq(0, m-d-1);
Reverse_Sq(m-d, m-1);
PrintL();
}
}
int main()
{
Sqlist S;
return 0;
}