栈为空时,栈顶指针没有指向栈中进行入栈操作时,栈顶指针才指向第一个元素即使你数组实现栈也不会出现数组下标为-1而报错的情况,栈为空你没办法进行取操作,即使a[-1]这样表示不出错(假设啊),你访问的也不是你定义的栈的内存空间,那是别的内存空间可以先看看cpu的栈机制。
- 文化问答
- 答案列表
判断栈空的条件:如何判断栈空和栈满[朗读]
你说的这个情况应该是以数组构成顺序栈的情况下的一个数组以数组底为栈底,而栈那么,栈为空的时候标志肯定不能是0,因为它标志着栈顶元素是数组的第一个值。
入栈一般不用判断栈是否为空,但要判断栈是否已满,否则有可能出现溢出。
当两个指针相等时,栈为空!第一个指针是指向栈的首个元素,而第二个指针是指向最后一个元素的下一个位置,所以当两个指针相等时,栈就是空的了。
1、为空条件单链表:头结点指针域next==null静态链表:数组最后一个元素值为0循环链表:头结点的指针域指向它本身(循环查找时以p->next!=头结点作为遍历结。