单选题
设栈S和队列Q的初始状态为空,元素按照a、b、c、d、e的次序进入栈S,当一个元素从栈中出来后立即进入队列Q。若队列的输出元素序列是c、d、b、a、e,则元素的出栈顺序是______,栈S的容量至少为______。
【正确答案】
B
【答案解析】栈(stack)在计算机科学中是限定仅在表尾进行插入或删除操作的线性表,它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈项,需要读数据时从栈顶开始弹出数据(最后一个数据被第一个读出来)。
队列是一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。
第1空,根据队列的定义可知,它的输出元素序列是c、d、b、a、e,即出栈序列也是这个。
第2空,要求栈的大小,就是要看栈底元素到输出时栈中元素最多时的大小。由于入栈的顺序是a、b、c、d、e,而出栈的顺序是c、d、b、a、e,所以在栈中元素停留最多时为:a、b、c,则栈S的容量至少为3个。