2是不正确的
解释:按照2出栈顺序,a,b,c,d,e,f依次先进栈,然后f出栈;
这时栈中是a,b,c,d,e,接着e出栈,这时栈中是a,b,c,d;
接下来必须是g出栈,则必须先使之进栈,即:g进栈,然后g出栈;
这时栈中是a,b,c,d;然后是d出栈,栈中剩下a,b,c;
所有的元素都进过栈了,现在只能是安顺序c,b,a出栈。
这样就与顺序2不符。
4是正确的。说明[]中是栈的内容,()中是出栈的顺序
解释:a,b,c依次进栈[a,b,c],c出栈[a,b];-->(c,。。
。)
d进栈[a,b,d],d出栈[a,b];-->(c,d,。。。)
b出栈[a];-->(c,d,b,。 。。)
e进栈[a,e],e出栈[a]; -->(c,d,b,e,。
。。)
f进栈[a,f],f出栈[a];-->(c,d,b,e,f,。。。)
a出栈[]->(c,d,b,e,f,a,。。。)
g进栈[g],g出栈[]。-->(c,d,b,e,f,a,g),ok!
。
。