书上的代码:
int Pop(SqStack &S,SElemType&e)
{
if(S.top==S.base) return 0;
e=*--S.top; //--S.top之后不是只把指针移动了吗?原栈顶的元素应该还在内存中吧,为什么不进行删除操作呢?
return 1;
}
书上的代码:
int Pop(SqStack &S,SElemType&e)
{
if(S.top==S.base) return 0;
e=*--S.top; //--S.top之后不是只把指针移动了吗?原栈顶的元素应该还在内存中吧,为什么不进行删除操作呢?
return 1;
}
指针移动了,不就是相当于删除了吗?栈无非就是使用数组或者链表来实现,从数组来看,只要你定义了数组长度,就必定会占用内存,跟你里面有没有值,值是多少没关系,因此只需要移动指针,就可以很简单的做到删除,不需要多次一举的去“删除其中的元素”。如果是链表实现的,那么就需要真正的删除。