📄 a,b倒置.cpp
字号:
#include<iostream.h>
#define MaxLen 50 //顺序表中最多元素个数
typedef int elemtype;
typedef elemtype sqlist[MaxLen];
int create(sqlist A) //创建顺序表
{
int i,n;
cout<<"创建一个顺序表"<<endl;
cout<<"输入元素个数:";
cin>>n;
cout<<"输入这n个元素值:";
for(i=0;i<n;i++)
cin>>A[i];
return n;
}
void disp(sqlist A,int n) //输出一个顺序表
{
int i;
cout<<"输出一个顺序表"<<endl<<" ";
if(n==0)
cout<<"空表";
for(i=0;i<n;i++)
cout<<A[i]<<" ";
cout<<endl;
}
int ins(sqlist A,int n,int i,elemtype x) //在顺序表的第i个元素前插入一个元素x
//若i=0,则新元素作为第一个元素;若i=n,则插入在最后
{
int j;
if(i<0||i>n)
cout<<"i值下溢或上溢"<<endl;
else
{
for(j=n-1;j>=i;j--)
A[j+1]=A[j]; //将第个元素以及其后的元素后移
A[i]=x;n++; //顺序表长度增加1
}
return n;
}
int del(sqlist A,int n,int i)
{
int j;
if(i<0||i>n)
cout<<"i值下溢或上溢"<<endl;
else
{
for(j=i-1;j<n;j++)
A[j]=A[j+1]; //将第i个元素之后的元素前移覆盖A[i]
n--;
}
return n;
}
int find(sqlist A,int n,elemtype x) //在一个n个元素的顺序表中查找元素值为x的元素
{
int i=0;
while(i<=n && A[i]!=x)
i++;
if(i<n)
return 1;
else
return 0;
}
void sort(sqlist A,int k)
{
int i,j,t,minval,minidx;
for(i=0;i<k;i++)
{
minval=A[i]; //存储A[i+1]至A[i]之间的最小数
minidx=i; //存储A[i+1]至A[i]之间的最小数的下标
for(j=i+1;j<k;j++)
if(A[j]<minval)
{
minval=A[j];
minidx=j;
}
if(minidx!=i)
{
t=A[i]; //将A[i]与A[minidx]进行交换
A[i]=A[minidx];
A[minidx]=t;
}
}
}
void invert(sqlist A,int low,int high)
{
int m=(high-low+1)/2,i; //m为长度的一半
elemtype temp;
for(i=0;i<m;i++)
{
temp=A[low+i];
A[low+i]=A[high-i];
A[high-i]=temp;
}
}
void main()
{
sqlist A;
int na,n;
na=create(A);
disp(A,na);
cout<<"以第n个位置为分界点倒置,请输入n的值:";
cin>>n;
invert(A,0,na-1);
disp(A,na);
invert(A,0,n-1);
disp(A,na);
invert(A,n,na-1);
disp(A,na);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -