1.堆栈(stack),其实就是堆,为什么加堆,我查了了一下,似乎是历史原因,在栈的实现时,内存中的资源分配是以堆的逻辑分配的(使用malloc函数申请内存时),故叫堆栈,其实我们研究其栈的主要性质就可以了,内存中的分配是操作系统和计算机组成原理研究的问题。
2.栈的主要思想就是后进先出,与之相关的算法设计有:
a) 函数调用
b) 递归算法实现
1 int factorial(int n){ 2 return n * factorial(n-1); 3 }
c)深度优先算法
d) 操作系统中中断处理时的数据保存。(堆栈寄存器)
e) 我们可以理解,凡是需要返回到上一步的,都是会用到栈的思想。