假设栈S和队列Q的初始状态为空,元素a、b、c、d、e、f依次通过S和Q,既每一个元素必须先进栈,之后再出栈进入队列。若这6个元素出队的顺序是b、d、c、f、e、a,则栈S的容量至少应该为

设栈长度为s,起始为0因为栈后进先出,队列先进先出。又因为元素E1.。E6是顺序入栈,那么分析过程如下:按照出栈过知程分析,因为给定出栈顺序:E2,E4,E3,E6,E5,E1,E2要进栈,所以道E1必须进栈,进栈顺序:E1,E2,所以s为2下面E2出栈,打印出E2,剩余结果为E4,E3,E6,E5,E1,因为E2出栈了,所以当前栈容量为2,但是只是内用了1个,存放E1,下面继续E3进栈,容E4进栈,此时s为3,根据出栈结果,那么E4出栈,E3出栈,此时栈容量为3但是只有E1在栈中,剩余结果为E6,E5,E1,同理,E5进栈,E6进栈,此时栈被填满,容量为3,后E6出栈,E5出栈,E1出栈,栈空,容量为3.所以S的容量至少为3.

你可能感兴趣的:(前端面试题大合集)