对于一个初始为空的栈,其入栈序列为abc时,其出栈序列可以有【 】种。
A、3
B、4
C、5
D、6
对于一个初始为空的栈,其入栈序列为abc时,其出栈序列可以有【 】种。
A、3
B、4
C、5
D、6
C
【解析】
入栈序列为abc时,出栈序列可以为abc、acb、bac、bca、cba,以I表示入栈、O对应出栈,原则是:每个元素仅入栈、出栈各1次;一次出栈操作的条件是栈不为空且只
能让栈顶元素出栈。
出栈序列为abc时,对应的操作序列为 IOIOIO。
出栈序列为acb时,对应的操作序列为 IOIIOO。
出栈序列为bac时,对应的操作序列为 IIOOIO。
出栈序列为bca时,对应的操作序列为IIOIOO。
出栈序列为cba时,对应的操作序列为IIIOOO。
在栈的合法操作序列中,其任何前缀部分中,出栈操作的次数都不多于入栈操作。
对于一个初始为空的栈,其入栈序列为 1,2,3,...,n(n>3),若出栈序列的第一个元素是1则出栈序列的第n个元素【 】
对于初始为空的栈S,入栈序列为a、b、c、d,且每个元素进栈、出栈各1次。若出栈序列的第一个元素为d,则合法的出栈序列为【 】。
表达式可采用后缀形式表示。例如,“a+b”的后缀式为“ab+”。那么,表达式“a*(b-c)+d”的后缀表示为【 】
算术表达式a+b-c*d的后缀式是【 】(-、+、*表示算术的减、加、乘运算,运算符的优先级和结合性遵循惯例)。
若栈采用链式存储且仅设头指针,则【 】时入栈和出栈操作最方便。