问题
单项选择题
已知栈S初始为空,对于一个符号序列a1a2a3a4a5(入栈次序也是该次序),当用I表示入栈、O表示出栈,则通过栈S得到符号序列a2a4a5a3a1的操作序列为______。
A.I O I I O O I O O I
B.I I O I O I O I O O
C.I O O I I O I O I O
D.I I O I I O I O O O
答案
参考答案:D
解析:本题考查数据结构中栈的基本概念。
对于选项A,操作序列I O I I O O I O O I对应a1入栈、a1出栈、a2入栈、a3入栈、a3出栈、a2出栈、a4入栈、a4出栈,接下来要在栈空时出栈,因此该操作序列中的第9个操作会导致出错。
对于选项B,操作序列I I O I O I O I O O对应a1入栈、a2入栈、a2出栈、a3入栈、a3出栈、a4入栈、a4出栈、a5入栈、a5出栈、a1出栈,即通过栈S得到符号序列以a2a3a4a5a1。
对于选项C,操作序列I O O I I O I O I O对应a1入栈、a1出栈、为空栈时出栈,因此该操作序列中的第3个操作会导致出错。
对于选项D,操作序列I I O I I O I O O O对应a1入栈、a2入栈、a2出栈、a3入栈、a4入栈、a4出栈、a5入栈、a5出栈、a3出栈、a1出栈,即通过栈S得到符号序列a2a4a5a3a1。