// 6.实现出栈
template<typename T>
bool LinkStack<T>::Pop(T&x)
{
LinkNode<T> *p;
if (IsEmpty())// 栈空的时候不能让元素出栈
{
return false;
}
else
{
x = top->data;
p = top;
top = top->next;// 指向原来栈顶的下面的元素
delete p; // 将原来的栈顶删除
//p = NULL;
size--;
return true;
}
}
上面是链接栈中元素出栈的代码,为什么top=top->next之后p还指向的是原来的top呢?刚开始p=top,这不就说明开始的时候top和p指向的是同一块内存空间吗?