首页 > 其他 > 详细

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

时间:2019-11-09 21:52:24      阅读:84      评论:0      收藏:0      [点我收藏+]

栈:

栈的概述:

技术分享图片

 

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

 

入栈 出栈:

技术分享图片

 

 

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

技术分享图片

 

栈的应用01:撤销操作:

技术分享图片

 

技术分享图片

 

技术分享图片

 

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

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

技术分享图片

 

 

技术分享图片

 

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

技术分享图片

 

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

技术分享图片

 

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

技术分享图片

 

 

技术分享图片

 

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

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

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

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

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

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

 

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

 

 

栈的实现:

栈基本的五种操作:

技术分享图片

 

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

 

技术分享图片

 

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

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

 

代码设计方式:

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

技术分享图片

 

 

具体代码如下:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

原文:https://www.cnblogs.com/zach0812/p/11827922.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!