zoukankan      html  css  js  c++  java
  • 如何理解栈(栈的实现方式)

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

    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() 的值。

  • 相关阅读:
    C#中 @ 的用法
    ASP.NET页面间传值
    ASP.NET中常用的文件上传下载方法
    把图片转换为字符
    把图片转换为字符
    JavaScript 时间延迟
    Using WSDLs in UCM 11g like you did in 10g
    The Definitive Guide to Stellent Content Server Development
    解决RedHat AS5 RPM安装包依赖问题
    在64位Windows 7上安装Oracle UCM 10gR3
  • 原文地址:https://www.cnblogs.com/dtest/p/4202886.html
Copyright © 2011-2022 走看看