#define MAXSIZE 100
#define OK 1
#define OVERFLOW -2
#include <iostream>
using namespace std;
typedef int elemtype;
typedef struct
{
elemtype vec[MAXSIZE];
int last;
} sequenlist;
/*逆置操作*/
void inverse(sequenlist *L)
{
int temp;
int j = L->last;
for(int i=0;i<L->last/2;i++) //总共交换last/2次,这里是取整
{
temp=L->vec[i];
L->vec[i]=L->vec[j-1]; //从下标为last-1的位置开始交换,长度为last,其最后一个元素下标为last-1
L->vec[j-1]=temp;
j -= 1;
}
}
/*输出线性表*/
void listprint(sequenlist *L)
{
int i;
for(i=0; i<(*L).last; i++)
cout<<L->vec[i]<<" ";
cout<<endl;
}
int main()
{
sequenlist sl;
cout<<"输入顺序表长度:";
cin>>sl.last;
cout<<"输入顺序表:";
for(int i=0;i<sl.last;i++)
cin>>sl.vec[i];
cout<<"逆置前:"<<endl;
listprint(&sl);
inverse(&sl);
cout<<"逆置后:"<<endl;
listprint(&sl);
return 0;
}
顺序表的逆置操作
最新推荐文章于 2024-02-06 23:51:45 发布