作业帮 > 数学 > 作业

e=*(S.top-1)是什么意思啊,最好详细一点.而且为什么有个星号呢?

来源:学生作业帮 编辑:大师作文网作业帮 分类:数学作业 时间:2024/09/23 04:41:05
e=*(S.top-1)是什么意思啊,最好详细一点.而且为什么有个星号呢?
Status GetTop(SqStack S,SElemType &e){
if(s.top==s.base)return ERROR;
e=*(S.top-1);
return OK;
}//GetTop
e=*(S.top-1)是什么意思啊,最好详细一点.而且为什么有个星号呢?
看类SqStack的定义
其中变量top和base应该是一个指针
S.top-1表示指针数组中前一个指针
*(S.top-1)表示取该指针所指向的变量的值
这个函数判断是否可以出栈
如果栈空,返回错误
否则,返回栈顶元素
再问: 我是想问为什么是“e=*(S.top-1)”而不是“e=*S.top;S.top=S.top-1”呢?不是先删除后移动Top指针吗?请你说说,谢谢
再答: 要不你把初始化的init,入栈的push,还有结构体的定义都发上来吧 这个是要相互匹配的
再问: 太长了,我发个地址给你吧 http://blog.csdn.net/qqweinizhizhuo/article/details/4055707 程序也差不多的,你看看
再答: 注意Push中 *S.top++=e;//top自增 这句话的实际操作顺序是 *S.top=e; S.top++; 也就是说,S.top其实比最顶端的数据要大1 因此,在getTop时,需要e=*(S.top-1)