首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >这些输出流可能吗?

这些输出流可能吗?
EN

Stack Overflow用户
提问于 2015-05-12 00:52:20
回答 2查看 216关注 0票数 0

我正在做一个练习试题

A问题堆栈机器有ABCD的输入流。CDBA的输出流有可能吗?为了CDAB?显示创建这些流的操作序列,如果不可能,请解释为什么不可能。

我说这两种输出流都是可能的。

对于CDBA,下面是创建这样一个流的操作序列

  1. 推A
  2. 推B
  3. 推C
  4. pop C/Store
  5. 推D

用于CDAB

  1. 推A
  2. pop A/商店
  3. 推B
  4. 推A
  5. 推C
  6. pop C/商店
  7. 推D
  8. 推C

我认为堆栈机器的工作方式就像堆栈做-push弹出一样。每个人都同意我的两个操作顺序吗?是否存在使这些流无法创建/生成的“堆栈机器”的某些属性?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-08-16 18:47:41

如果有人还好奇的话,我几天前就重新讨论过这个问题了。

基本上,您通过push和pop(两个主要操作)将输入到堆栈机器中。

因此,看看我们的第一个输入流ABCD,下面是生成CDBA输出流的操作序列。

  • 推A
  • 推B
  • 推C
  • Pop C(输出流: C)
  • 推D
  • Pop D(输出流: CD)
  • Pop B(输出流: CDB)
  • Pop A(输出流: CDBA)

从而形成CDBA的输出流。

但是,要生成CDAB的输出流,从生成CDBA开始的6个操作将应用于获得CD的输出流。然而,在这6个操作之后,您只剩下' B ','A‘,这意味着只使用push和pop,就无法在B之前输出A,因此第二个输出流是不可能形成的。

票数 0
EN

Stack Overflow用户

发布于 2015-05-12 02:29:51

是的,一切看起来都很好,除了你需要在CDBA结束时再推C。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30179966

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档