等级2017年春程序员软考( )

为支持函数调用及返回,常采用称为“【 】”的数据结构。

A、队列

B、栈

C、多维数组

D、顺序表

程序运行过程中若函数 A 调用函数 B,函数 B 又调用了函数 C,那么正常情况下,函数 C运行结束后需要返回到函数 B,函数 B 运行结束后再返回函数 A 继续执行。实现该控制处理的数据结构必须为栈。

等级2017年春程序员软考( )

对于一个初始为空的栈,其入栈序列为 1,2,3,...,n(n>3),若出栈序列的第一个元素是1则出栈序列的第n个元素【 】

A、可能是 2~n 中的任何一个

B、一定是2

C、一定是 n-1

D、一定是n

可能是 2~n 中的任何一个

栈的修改原则是后进先出,是指当元素同时处于栈中时,后进入栈中的元素必须先退栈。对于初始为空的栈,其入栈序列为 1,2,3,...,n(n>3),因此规定了元素的入栈顺序。若第一个出栈的元素是 1,对应的操作是 1 入栈后又出栈的操作。此后,每个入栈的元素都可能有两种情况,出栈或不出栈,因此在操作序列不确定的情况下,最后出栈的元素可能是 2~n中的任何一个元素。对合法操作序列的要求是:其任何前缀中,出栈操作的次数不多于入栈操作的次数。

等级2017年春程序员软考( )

表达式可采用后缀形式表示。例如,“a+b”的后缀式为“ab+”。那么,表达式“a*(b-c)+d”的后缀表示为【 】

A、abc-*d+

B、abcd*-+

C、abcd-*+

D、ab-c*d+

abc-*d+

后缀形式表达式中不包含括号,运算符放在两个运算对象的后面,所有的计算按运算符出现的顺序,严格从左向右进行。

按照表达式“a*(b-c)+d”的求值方式,其后缀表示为“abc-*d+”。

考试2016年秋程序员软考( )

设元素a、b、c、d依次进入一个初始为空的栈,则不可能通过合法的栈操作序列得到【 】。

A、abcd

B、badc

C、cadb

D、dcba

cadb

等级2016年春程序员软考( )

设有初始为空的栈S,对于入栈序列a、b、c、d,经由一个合法的进栈和出栈操作序列后(每个元素进栈、出栈各1次),以c作为第一个出栈的元素时,不能得到的序列为【 】。

A、cdba

B、cbda

C、cdab

D、cbad

cdab

栈的修改规则是后进先出。对于题目给出的元素序列,若要求c先出栈,此时a、b尚在栈中,因此这三个元素构成的出栈序列只能是cba,而元素d可在b出栈之前进栈,之后b只能在d出栈后再出栈,因此可以得到出栈系列cdba。同理,c可在a出栈之前进栈,从而得到出栈序列cbda。若e在a出栈后入栈、出栈,则得到出栈序列cbad。由于a不能在b出栈前出栈,因此不能得到cdab。