博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何理解栈(栈的实现方式)
阅读量:5128 次
发布时间:2019-06-13

本文共 687 字,大约阅读时间需要 2 分钟。

网上看到的一段对话,写的很清晰,一目了然。

 

Frank: 什么是栈?

Linda: 它是一种数据结构,按先进后出(或后进先出)的方式收集对象。它通常有一个 API,其中包括 push() 和 pop() 等方法。有时也有peek() 方法
Frank: push() 有什么功能?
Linda: push() 接受一个输入对象,比如说 foo,并将它放入到一个内部容器(例如一个数组)中。push() 通常不返回结果。
Frank: 如果我 push() 两个对象,比如先是 foo,然后是 bar,结果会怎样?
Linda: 第二个对象 bar 应该在栈(至少包含两个对象)的顶部,所以如果调用 pop(),那么返回的应该是 bar,而不是 foo。如果再次调用pop(),那么应该返回 foo,然后栈为空(假设在添加这两个对象之前栈中没有对象)。
Frank: 也就是说,pop 移除最近放入栈中的项目?
Linda: 是的,pop() 应该移除最上面的项目(假设栈中还有可移除的项目)。peek() 与此类似,只是不移除栈中的对象。peek() 应该保留栈顶的项目
Frank: 如果之前没有 push 任何项目,那么调用 pop() 时会怎样?
Linda: pop() 应该抛出一个异常,表明栈中尚未 push 任何项
Frank: 如果 push()null 会怎样?
Linda: 栈应该抛出一个异常,因为 null 不是一个有效的可 push() 的值。

转载于:https://www.cnblogs.com/dtest/p/4202886.html

你可能感兴趣的文章
企业级应用与互联网应用的区别
查看>>
steelray project viewer
查看>>
itext jsp页面打印
查看>>
HTTP之报文
查看>>
Perl正则表达式匹配
查看>>
Git
查看>>
DB Change
查看>>
nginx --rhel6.5
查看>>
Eclipse Python插件 PyDev
查看>>
selenium+python3模拟键盘实现粘贴、复制
查看>>
第一篇博客
查看>>
typeof与instanceof的区别
查看>>
网站搭建(一)
查看>>
SDWebImage源码解读之SDWebImageDownloaderOperation
查看>>
elastaticsearch
查看>>
postgreSQL 简单命令操作
查看>>
Spring JDBCTemplate
查看>>
Radon变换——MATLAB
查看>>
第五章笔记
查看>>
Iroha and a Grid AtCoder - 1974(思维水题)
查看>>