01玩转数据结构_03_栈和队列

栈:

栈的概述:

虽然看起来它只是数组的子集,但是栈的这种结构对于计算机中组建逻辑有这非常非常大的作用。

入栈 出栈:

栈是一种先进后出(FILO First in Last Out )的结构。

栈的应用01:撤销操作:

栈的应用02:程序调用的系统栈:

了解它有助于我们更加理解递归!!! 

此时的系统栈中会记录下:

A2的意思是执行到A函数的第二行了。

同样系统栈中会继续压入!!!

当C 函数执行完毕之后,我们的计算机就不知道该执行谁了,

它此时会看系统栈中的内容,

发现是B2 ,所以开始从B2继续执行。(同时会弹出B2)

当B函数也执行完毕时候,计算机又会看下系统栈,发现是A2

所以,它就会从A2开始执行。(同时会弹出A2)

当A函数也执行完毕的时候,系统栈中为空。所以函数执行完毕!!!

这个过程对理解递归有很大的帮助,后面会有关于递归的内容。 

栈的实现:

栈基本的五种操作:

其中peek () 有的 语言中 喜欢叫它top()  !

这里说一种 栈的底层实现(另外一种后面会说):

后面的队列会说两种不同的底层实现。

代码设计方式:

先设计一个接口,然后用ArrayStack 去实现它。

具体代码如下:

猜你喜欢

转载自www.cnblogs.com/zach0812/p/11827922.html
今日推荐