一道关于"栈"的菜鸟问题,急!!!!!!!!!!!!!!!! 对于n个数,出栈方式总共有:1*2*3*...*(n-1)*(n-1)+1如1,2,3,4,5,6,则n=6,一共能得到不同的出栈方式有:1*2*3*4*5*5+1=601 (种) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 通過邏輯歸納,同意jjcccc()的算法結論.对于依次入栈的n个数,出栈方式总共有:1*2*3*...*(n-1)*(n-1)+1(种) jjcccc() 你能解释一下吗?不太明白 因为n个数出栈方式按理说就是n个数的全排列,即n!,但对于堆栈来说,若最后一个数进栈了,那它的出栈方式只有一种可能,就是:n,n-1,...,1 所以计算出栈排列的时候,先确定第一个出栈的不是最后一个数,则共有: 1*2*...*n-1*2*...(n-1)然后再加上n第一个出栈的这一种可能,总共就有: 1*2*...*n-1*2*...(n-1)+1 = 1*2*...*(n-1)*(n-1)+1 to qqqdong() :这题意是指各种入帐再出栈后,共有多少中结果,比如2个数1,2则有:push 1;pop ;push 2;pop;---结果是1,2若:push 1;push 2;pop;pop;---结果:2,1共两种 如果是1,2,3,4,5,6随意顺序入栈的话,不就是一个全排列的问题?因为所有排列的情况都可以用栈实现出来啊。有必要那么麻吗?楼主问的是: 几种不同的出栈方式?(到底是什么意思?)push 1;push 2;push 3;push 4;push 5;push 6;pop;pop;pop;pop;pop;pop;和push 6; pop ;push 5; pop ;push 4; pop ;push 3; pop ;push 2; pop ;push 1; pop ;可以理解上面是同样的出栈方式吗? HNU(HNU) ( ) :其实我记得这好像是大学《数据结构》上的一个练习题(10年前的学的,记不清了),意思是1,2,3,4,5,6入栈,但不能颠倒顺序,即必须按1,2,...,6的顺序入栈,但出栈可以在任意时候(比如push 1后马上pop,在push2,...,但不能先push 2,再push 1),问出栈总共有多少种方式?所以可能你误会题意了 上亿行文本如何高效查询? 求高手设计一个合理的架构。 菜鸟来袭,请教ListView控件,列的使用?? 采用OleDB读取.DBF文件遇到的问题需要帮助 如何实现CTRL+ENTER 提交消息 100分征一搜索算法 nunit在vs.net2003中有没有工具插件? 有谁给我明解"BitArray.And" label里面内容分行显示 VS.NET2003必须面对的问题!微软VS.NET2003最经典的bug,讨论解决方案! 请问哪里能下到单独的vc#.net2003啊? 关于通过修改datagrid里面的内容更改数据源相应的内容
对于依次入栈的n个数,出栈方式总共有:
1*2*3*...*(n-1)*(n-1)+1(种)
所以计算出栈排列的时候,先确定第一个出栈的不是最后一个数,则共有:
1*2*...*n-1*2*...(n-1)
然后再加上n第一个出栈的这一种可能,总共就有:
1*2*...*n-1*2*...(n-1)+1 = 1*2*...*(n-1)*(n-1)+1
则有:
push 1;
pop ;
push 2;
pop;---结果是1,2若:
push 1;
push 2;
pop;
pop;---结果:2,1共两种
push 1;
push 2;
push 3;
push 4;
push 5;
push 6;pop;
pop;
pop;
pop;
pop;
pop;和push 6;
pop ;
push 5;
pop ;
push 4;
pop ;
push 3;
pop ;
push 2;
pop ;
push 1;
pop ;
可以理解上面是同样的出栈方式吗?
其实我记得这好像是大学《数据结构》上的一个练习题(10年前的学的,记不清了),意思是1,2,3,4,5,6入栈,但不能颠倒顺序,即必须按1,2,...,6的顺序入栈,但出栈可以在任意时候(比如push 1后马上pop,在push2,...,但不能先push 2,再push 1),问出栈总共有多少种方式?所以可能你误会题意了