设栈的输入序列是1,2,3,4,则不可能是其出栈序列,为什么答案是4,3,1,2?
展开全部
假设第一个是4出栈,那么就说明前面,进栈顺序只能是 1,2,3,那么出栈顺序使能是 4,3,2,1。
输出可以是1234,2134,1432,4321。
第一种:1进1出,2进2出,3进3出,4进4出;
第二种:1进,2进,2出,1出,3进3出,4进4出;
第三种:1进1出,2进3进4进,4出3出2出。
以此类推。
扩展资料:
1、进栈(PUSH)算法
①若TOP≥n时,则给出溢出信息,作出错处理(进栈前首先检查栈是否已满,满则溢出;不满则作②);
②置TOP=TOP+1(栈指针加1,指向进栈地址);
③S(TOP)=X,结束(X为新进栈的元素);
2、退栈(POP)算法
①若TOP≤0,则给出下溢信息,作出错处理(退栈前先检查是否已为空栈, 空则下溢;不空则作②);
②X=S(TOP),(退栈后的元素赋给X):
③TOP=TOP-1,结束(栈指针减1,指向栈顶)。
参考资料来源:百度百科-栈
展开全部
输出可以是1234,2134,1432。第一种:1进1出,2进2出,3进3出,4进4出;第二种:1进,2进,2出,1出,3进3出,4进4出;第三种:1进1出,2进3进4进,4出3出2出。根据这种方法,4312当然是不可能的,不懂追问我
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
先进后出。
4 3 1 2 是不可能的。
因为,如果4 3 可以出栈的话,说明前面已经把 1 2 已经放到栈里面了。
根据 先进后出的原则。 4 3 出栈没问题。
但是里面另外的 1 和 2 肯定是1 先入栈,所以应该是 2 先出 1 再出。
4 3 1 2 是不可能的。
因为,如果4 3 可以出栈的话,说明前面已经把 1 2 已经放到栈里面了。
根据 先进后出的原则。 4 3 出栈没问题。
但是里面另外的 1 和 2 肯定是1 先入栈,所以应该是 2 先出 1 再出。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果栈是1个空间,则输出序列为:1234;如果栈空间是2,则输出序列为:2143;如果栈空间是3,则输出序列是:3214;如果栈的空间大于等于4,则输出序列为:4321。关键是要知道栈是“先进后出”
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
所以(1)这个有点难,一定不是A D 答案在BC中,只要能找出7种以上的不可能,就可以确定是B
1234全排列共24种
4先出栈的 只有4321是合理的,其余都不可能,共有5种
3先出栈的 排列中,不可能有3124 和3412 ,3142 有3种
1423也是不可能的
2413也是不可能的
SO B是对的
(2)C.3412 3 4进出栈,则1 2在栈中,1不可能在2之前出栈
(3)队列的特点,先进先出
1234全排列共24种
4先出栈的 只有4321是合理的,其余都不可能,共有5种
3先出栈的 排列中,不可能有3124 和3412 ,3142 有3种
1423也是不可能的
2413也是不可能的
SO B是对的
(2)C.3412 3 4进出栈,则1 2在栈中,1不可能在2之前出栈
(3)队列的特点,先进先出
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询