1.一个栈的输入序列为1 2 3 4 5,则下列序列中不可能是栈的输出序列的是( ).A.2 3 4 1 5 B.5 4 1 3
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/27 15:55:48
![1.一个栈的输入序列为1 2 3 4 5,则下列序列中不可能是栈的输出序列的是( ).A.2 3 4 1 5 B.5 4 1 3](/uploads/image/z/554456-56-6.jpg?t=1.%E4%B8%80%E4%B8%AA%E6%A0%88%E7%9A%84%E8%BE%93%E5%85%A5%E5%BA%8F%E5%88%97%E4%B8%BA1+2+3+4+5%2C%E5%88%99%E4%B8%8B%E5%88%97%E5%BA%8F%E5%88%97%E4%B8%AD%E4%B8%8D%E5%8F%AF%E8%83%BD%E6%98%AF%E6%A0%88%E7%9A%84%E8%BE%93%E5%87%BA%E5%BA%8F%E5%88%97%E7%9A%84%E6%98%AF%EF%BC%88+%EF%BC%89.A.2+3+4+1+5+B.5+4+1+3)
1.一个栈的输入序列为1 2 3 4 5,则下列序列中不可能是栈的输出序列的是( ).A.2 3 4 1 5 B.5 4 1 3
1.一个栈的输入序列为1 2 3 4 5,则下列序列中不可能是栈的输出序列的是( ).A.2 3 4 1 5 B.5 4 1 3
1.一个栈的输入序列为1 2 3 4 5,则下列序列中不可能是栈的输出序列的是( ).A.2 3 4 1 5 B.5 4 1 3
可以根据答案来判定的,像A的话,顺序是2 3 4 1 5 那么当2进来的时候应该马上出去,如果不这样做的话,2肯定不是第一个出去的,依此类推
进1进2出2进3出3进4出4出1进5出5,这样,第一个答案应该是可行的
然后看第二个
进1进2进3进4进5出5出4出1出3出2这里已经不行了
这题我以前写过程序的
#include
int stack[1000000],top=0;
int main()
{
int i,j,n,trian;
//输入格式
//5
//2 3 4 1 5
//5 4 1 3 2
while(scanf("%d",&n)!=EOF&&n)
{
while(scanf("%d",&trian)!=EOF&&trian)
{
top=0;
for(j=1;j