0 / 10

已知栈S初始为空,对于一个符号序列 a1a2a3a4a5(入栈次序也是该次序),当用 I 表示入栈、O 表示出栈,则通过栈 S 得到符号序列 a2 a4 a 5a3 a1 的操作序列为(  )。

答案:

答案解析:

本题考查数据结构中栈的基本概念。
对于选项A,操作序列I O I IOOIOOI对应a1入栈、a1出栈、a2入栈、a3入栈、a3出栈、a2出栈、a4入栈、a4出栈,接下来要在栈空时出栈,因此该操作序列中的第9个操作会导致出错。
对于选项B,操作序列I IOIOIOIOO对应a1入栈、a2入栈、a2出栈、a3入栈、a3出栈、a4入栈、a4出栈、a5入栈、a5出栈、a1出栈,即通过栈S得到符号序列a2 a3 a4 a5 a1
对于选项C,操作序列IOOI IOIOIO对应”a1入栈、a1出栈、为空栈时出栈,因此该操作序列中的第3个操作会导致出错。
对于选项D,操作序列I IOI I OIOOO对应a1入栈、a2入栈、a2出栈、a3入栈、a4入栈、a4出栈、a5入栈、a5出栈、a3出栈、a1出栈,即通过栈S得到符号序列a2 a4 a5 a3 a1