设栈的输入序列为1,2,3,...,n,输出序列为a1,a2,a3,...,an,若存在1≤k≤n使得 ak=n,则当k≤i≤n时,ai 为【 】
A、n-i+1
B、n-(i-k)
C、不确定
设栈的输入序列为1,2,3,...,n,输出序列为a1,a2,a3,...,an,若存在1≤k≤n使得 ak=n,则当k≤i≤n时,ai 为【 】
A、n-i+1
B、n-(i-k)
C、不确定
C
【解析】
由于输出序列a1,a2,a3,...,an 并没有指出具体的序列值,只是一个变量序列,即可能是由输入序列的任何可能出栈序列决定的。
讨论
设有初始为空的栈S,对于入栈序列a、b、c、d,经由一个合法的进栈和出栈操作序列后(每个元素进栈、出栈各1次),以c作为第一个出栈的元素时,不能得到的序列为【 】。
设元素a、b、c、d依次进入一个初始为空的栈,则不可能通过合法的栈操作序列得到【 】。
表达式可采用后缀形式表示。例如,“a+b”的后缀式为“ab+”。那么,表达式“a*(b-c)+d”的后缀表示为【 】
对于一个初始为空的栈,其入栈序列为 1,2,3,...,n(n>3),若出栈序列的第一个元素是1则出栈序列的第n个元素【 】
对于初始为空的栈S,入栈序列为a、b、c、d,且每个元素进栈、出栈各1次。若出栈序列的第一个元素为d,则合法的出栈序列为【 】。
如果进栈序列为e1,e2,e3,e4,则可能的出栈序列是【 】。
算术表达式a+(b-c)*d的后缀式是【 】(-、+、*表示算术的减、加、乘运算,运算符的优先级和结合性遵循惯例)。
若元素a、b、c、d、e、f依次进栈,允许进栈、出栈操作交替进行。但不允许连续三次进行出栈工作,则不可能得到的出栈序列是【 】。