函数递归与栈的关系 (二)

2014-11-23 23:55:17 · 作者: · 浏览: 65
ckNode = NULL ;

int NOfFact;

int tmp = 1,Sum = 1;

pStackNode = CreateStack(NumOfStack);

printf("the number of Factorial\n");

scanf("%d",&NOfFact);

while(NOfFact)

{

Push(pStackNode,NOfFact--);

}

while(pStackNode->top)

{

Pop(pStackNode,&tmp);

Sum *= tmp;

}

printf("sum is %d\n",Sum);

return 0;

}

仅仅呈现主程序部分。在主程序中,我们首先对参数入栈,也就是对n 、n-1、...1入栈,然后再出栈进行操作。

这篇文章写的比较概括,我希望告诉大家的是,通过观看反汇编语言中关于阶乘的递归实现的运行过程及步骤,能够加深我们对于函数递归和栈的理解。虽然汇编语言有些难懂,但是通过阅读上面为大家推荐blog,相信大家都能够看懂。

摘自 yankai0219