若已知一个栈的入栈顺序是1,2,3,...,n,其输出序列为P1,P2,P3,...,Pn,若P1是n,则Pi是

问题描述:

若已知一个栈的入栈顺序是1,2,3,...,n,其输出序列为P1,P2,P3,...,Pn,若P1是n,则Pi是
A)i B)n-i C)n-i+1 D)不确定

C)n-i+1
栈的排列遵循先进后(即后进先出)出的原则
因为P1是n,是出栈的第一个数字,说明在n之前进栈的数字都没有出栈,所以这个顺序是确定的.还可以知道,最后出栈的一定是数字1,也就是Pn.代入这个式子,是正确的.最后出栈的一定是数字1,也就是Pn?如果中间没有其他数字进栈,只是这几个数字之间的进出栈顺序,那出栈的顺序一定是n,n-1,……3,2,1.这个是c语言中堆栈的基础,课本上有详细介绍。