棧為空時,棧頂指針沒有指向棧中進行入棧操作時,棧頂指針才指向第一個元素即使你數組實現棧也不會出現數組下標為-1而報錯的情況,棧為空你沒辦法進行取操作,即使a[-1]這樣表示不出錯(假設啊),你訪問的也不是你定義的棧的內存空間,那是別的內存空間可以先看看cpu的棧機制。
- 文化問答
- 答案列表
判斷棧空的條件:如何判斷棧空和棧滿[朗讀]
你說的這個情況應該是以數組構成順序棧的情況下的一個數組以數組底為棧底,而棧那麼,棧為空的時候標誌肯定不能是0,因為它標誌著棧頂元素是數組的第一個值。
入棧一般不用判斷棧是否為空,但要判斷棧是否已滿,否則有可能出現溢出。
當兩個指針相等時,棧為空!第一個指針是指向棧的首個元素,而第二個指針是指向最後一個元素的下一個位置,所以當兩個指針相等時,棧就是空的了。
1、為空條件單鍊表:頭結點指針域next==null靜態鍊表:數組最後一個元素值為0循環鍊表:頭結點的指針域指向它本身(循環查找時以p->next!=頭結點作為遍歷結。