c0506_判断出栈顺序是否合法 【问题描述】对于一个栈,已知元素的进栈序列,判断一个由栈中所有元素组成的排列是否是可能的出栈序列。 比如,进栈序列为1 2 3 4,则可能的出栈序列有4 3 2 1,1 4 3 2等。而1 4 2 3就不是。 【输入形式】从标准输入读取第一行是一个整数N(3≤N≤10),代表有N个元素,...
正确答案是C 判断方法:由于入栈顺序是6,5,4,3,2,1。则出栈顺序判定方法是“任意数A的后面比A大的数应按递增顺序排列”。在C中,3后边的4,6,5以及4后边的6,5排列顺序皆不正确。所以C排列不合法,A, B, D的排列均符合上述判定方法,楼主自行验证即可。
假设你的栈是a, b, c, d, e,e在最底。然后有个数组记载着入栈顺序,比如[e, d, c, b, a],意味着e第一入栈的。这时只要一个变量来存栈的容量就行了吧,初始是5。 当a出栈,发现变量里面存的是5,就和数组第5位对比,然后变量-1变成4当b出栈,发现变量里面存的是4,就和数据第4位对比,然后变量-1...