C语言数据结构栈删除操作疑惑

酱香味的大猪蹄子 2019-04-18 03:41:23
int Pop(SqStack &S, ElemType e) {
if (S.top == S.base)
return ERROR;
e = *--S.top;
return e;
}
为什么先动指针呢?这样返回的值是退栈的数据吗?不是因该先存入e里之后在动指针吗?小白一个,希望有大神指点。
...全文
139 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
自信男孩 2019-04-19
  • 打赏
  • 举报
回复
要看你的入栈是先动指针还是先动数据了,因此需要看一下你的入栈和初始化栈的操作
xyz-x 2019-04-19
  • 打赏
  • 举报
回复
引用 4 楼 xyz-x的回复:
我用#CSDN#这个app发现了有技术含量的博客,小伙伴们求同去《c++实现栈》, 一起来围观吧 https://blog.csdn.net/xyzbaihaiping/article/details/51125005 可以看看这个 看下那个图*top不是栈顶的那个元素,*--top才是,top为了方便入栈
发的是c++的,博主有c语言的应该,我有点忘记了
xyz-x 2019-04-19
  • 打赏
  • 举报
回复
我用#CSDN#这个app发现了有技术含量的博客,小伙伴们求同去《c++实现栈》, 一起来围观吧 https://blog.csdn.net/xyzbaihaiping/article/details/51125005 可以看看这个 看下那个图*top不是栈顶的那个元素,*--top才是,top为了方便入栈
老马何以识途 2019-04-18
  • 打赏
  • 举报
回复
要看數據結構和入棧操作,看起來可能這個top只是用於做入口索引,不存儲數據。
浮一大白开水 2019-04-18
  • 打赏
  • 举报
回复
要看你的push函数是怎么实现的,可能是因为压数据的时候s.top指定并不是指向当前数据,而是需要先位移一下则是当前pop的数据。
636f6c696e 2019-04-18
  • 打赏
  • 举报
回复
top不是栈顶数据,而是栈顶数据的上一个

69,336

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧