首先需要写一个出栈函数,得到栈顶的值,才能将其输出
bool Pop(SqStack*& s, ElemType& e)
{
if (s->top == -1)
return false;
e = s->data[s->top];
s->top--;
return true;
}
注意:
(1)这个出栈函数是bool型的
原因:
①当栈顶指针不断下降时,要在栈为空时停止下降,因此需要进行判断(真假),所以用bool
②不用到判断时才用void,如果需要判断加返回值,就只需要bool加个&引用符号即可
扩:&可以写多个返回值,而int、double等函数,只能返回一个,所以一般就考虑bool和void函数即可
(2)注意这个只能返回一个栈顶的元素
要输出全部的栈内元素,需要用到while
while (s->top != -1)
{
Pop(s, e);
cout << e<<" ";
}