单项选择(2017年秋程序员软考)

对于初始为空的栈S,入栈序列为a、b、c、d,且每个元素进栈、出栈各1次。若出栈序列的第一个元素为d,则合法的出栈序列为【 】。

A、dcba

B、dabc

C、dcab

D、dbca

答案解析

A

【解析】

入栈序列为a、b、c、d时,若第一个出栈的元素为d,则说明a、b、c都还在栈中,而且a位于栈底,其次是b和c,因此,合法的出栈序列只能为 d、c、b、a。

讨论