若已知一个栈的入栈序列是1,2,3,…,n,其输出序列为 p1 , p2 , p3 ,…, pn ,若p1=n,则pi为()
A.i
B.n=i
C.n-i+1
D.不确定
正确答案是 C
当p1=n,即n是最先出栈的,根据栈的原理,n必定是最后入栈的(事实上题目已经表明了),那么输入顺序必定是1,2,3,…,n,则出栈的序列是n,…,3,2,1。
(若不要求顺序出栈,则输出序列不确定)
额,我选的D
当出栈的第一个元素(n)刚好是入栈顺序(1,2,3,...,n)的最后一个元素,那么说明它前面的元素(1,2,3,...n-1)已经全部进栈了,那么出栈的顺序就已经定死了,必须是n,n-1,n-2,...3,2,1。所以就可以根据规律第i个元素为n-i+1,如第一个,n-1+1=n,第二个n-2+1=n-1;
数学题:通项下标和:n+1
请实现KMP算法?
北京有一条1公里长的街道,你认为一天能收多少钱的停车费?
cookies,sessionStorage 和 localStorage 的区别?
ArrayList和LinkedList的区别,以及各自是怎么实现扩容的?
额,我选的D
当出栈的第一个元素(n)刚好是入栈顺序(1,2,3,...,n)的最后一个元素,那么说明它前面的元素(1,2,3,...n-1)已经全部进栈了,那么出栈的顺序就已经定死了,必须是n,n-1,n-2,...3,2,1。所以就可以根据规律第i个元素为n-i+1,如第一个,n-1+1=n,第二个n-2+1=n-1;
数学题:通项下标和:n+1