我正在研究练习考试问题
一 问题堆栈计算机具有ABCD的输入流。是否有可能CDBA的输出流?对于CDAB?显示创建这些流的操作顺序,或者如果不可能,则解释为什么不可能。
我说两种输出流都是可能的。
对于CDBA,以下是我创建此类流的操作序列
对于CDAB
我认为堆栈机就像堆栈一样工作 - 推送pop。大家都同意我的两个操作顺序吗?是否存在“堆栈机器”的某些属性,使这些流无法创建/生成?
答案 0 :(得分:1)
是的,除了你需要在CDBA结束时再次推送C外,一切看起来都不错。
答案 1 :(得分:0)
如果有人还好奇,我会在几天前重新审视这个问题。
基本上你通过pop(两个主要操作)
所以看看我们的第一个输入流ABCD,这里将是生成CDBA输出流的操作序列
因此形成了CDBA的输出流
但是,要生成CDAB的输出流,生成CDBA的前6个操作将适用于获取CD的输出流。然而,在这6次操作之后,你留下了(从顶部到底部)['B','A']这意味着只使用push和pop,就没有办法在B之前输出A. 因此,无法形成第二个输出流。