1栈模拟递归
#include
<iostream
>#include
<stack>
using
namespace
std;struct
datas
{intn;void
(*p)(int);};/*递归打印
0-n的数*/void
printN
(intn){if(n> 0)
{cout
<<n;printN
(n- 1);
}}/*打印数字
*/void
print
(intn){cout
<<n;}/*栈模拟函数
*/void
printall
(intn){stack
<datas
>mystack
;AAA:if(n> 0)
{datas
s1;s1.n=n;s1.p=print
;//先放入栈mystack
.push
(s1);//先放入栈,立即弹
栈while
(!mystack
.empty
()){datas
stemp
=mystack
.top();//同样是打印
stemp
.p(stemp
.n);mystack
.pop();}//n减1n-= 1;
goto
AAA;}}void
main
(){//printN
(9);printall
(10); ...
附件列表