栈的定义:后进先出
栈是允许在同一端进行插入和删除操作的数据结构。被允许进行插入和删除操作的一端称为栈顶(top),另一端为栈底(bottom);栈底固定,而栈顶浮动;栈中元素个数为零时称为空栈。插入一般称为进栈(PUSH),删除则称为出栈(POP)。
由于栈规定只能在同一端进行插入和删除,因此栈的一个典型特点就是后进先出。
为了理解栈的后进先出特性,下面来看一道BAT的笔试题:
一个栈的入栈序列为ABCDE,则不可能的出栈序列为?
A. ECDBA
B. DCEAB
C. DECBA
D. ABCDE
E. EDCBA
答案:A,B
分析:
A:E最先出栈,所以ABCD已经先后入栈,所以,根据后进先出,C不可能比D先出栈
B:D出,C出,E入E出,AB已经先后入栈,所以,A不可能比B先出
C:D出E入E出C出B出A出
D:A入A出B入B出C入C出D入D出E入E出
E:E出D出C出B出A出