若已知一个栈的入栈序列是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
从浏览器输入URL到展示页面的全流程是怎么样的?
多线程中sleep()和wait()方法的区别
叉树前序遍历的递归和非递归实现?
什么是 Cookie?它的作用是什么?
怎么没能早点看到你这篇文章呢
额,我选的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