注意:递归的本质是栈
#include <list>
#include <stack>
#include <iostream>
using namespace std;
void PringListReversingly( list<int> &L, list<int>::iterator &it)
{
if(it!=L.end())
{
list<int>::iterator it1;
it1=it;
PringListReversingly(L,++it);
cout<<*it1<<" ";
}
}
void PringListReversingly_stack( list<int> &L, list<int>::iterator &it)
{
stack<int> stk;
for(it=L.begin();it!=L.end();++it)
stk.push(*it);
while(!stk.empty())
{
cout<<stk.top()<<" ";
stk.pop();
}
}
int main()
{
int a[]={12,32,1,23,4,12,45,42,45,13};
list<int> L(a,a+sizeof(a)/sizeof(*a));
PringListReversingly(L,L.begin());
cout<<endl;
PringListReversingly_stack(L,L.begin());
return 0;
}