#include <iostream>
using namespace std;
struct number
{
int num;
number *next;
};
void print(number *head,int n);
int main()
{ int a,i,j=0;
number *head,*s,*p;
head=NULL;
p=head;
s=new number;
cin>>a;
for(i=0;i<a;i++)
{ cin>>s->num;
if(head==NULL)
head=s;
else
p->next=s;
p=s;
s=new number;
}
p->next=NULL;
delete s;
print(head,a);
return 0;
}
void print(number *head,int n)
{
number *p;
int i=1;
p=head;
if(n==1)
cout<<p->num<<' ';
else
{while(i<n)
{p=p->next;
i++;
}
cout<<p->num<<' ';
print(head,n-1);
}
}
Description
(线性表)请写一个算法将顺序存储结构的线性表(a1...an)逆置为(an...a1)。
Input
输入长度n:5
输入数据:1 2 3 4 5
Output
5 4 3 2 1
Sample Input
5
7 8 9 10 11
Sample Output
11 10 9 8 7
HINT
逆置是数据结构中的题,类似数组中的逆置,即头尾互换。这里大家可以先用逆序,即输出时倒序输出,以后再用逆置做。