anj24
anj24
采纳率100%
2015-10-12 13:29 阅读 2.1k
已采纳

求解数据结构栈的输出输入问题

图片说明
为何结果是stack?pop(s,x)的用法是什么?
O(∩_∩)O谢谢

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

3条回答 默认 最新

  • 已采纳
    a1193561652 纵横车 2015-10-12 14:13

    Pop(S,x)就是把栈S中的元素弹出来,放到x中。(不过不知道是用什么Pop是用什么方式实现的,像这样按值传递可以在Pop里改变x吗?)

    1.Push(S,x);Push(S,'a');Push(S,y);
    之后栈为:kac;
    2.Pop(S,x);
    之后栈为:ac;x=k;
    3.Push(S,'t');Push(S,x)
    之后栈为:ktac;
    4.Pop(S,x)
    之后栈为:tac;x=k;
    5.Push(S,'s')
    之后栈为:stac;
    6.后面的while循环里将栈里的字符逐个Pop出来输出就是"stac"
    7.最后的printf(x)(这是什么用法?C语言可以这用?)输出x里面的"k"
    
    点赞 评论 复制链接分享
  • caozhy 从今以后生命中的每一秒都属于我爱的人 2015-10-12 15:04

    脑补下,pop(s, x)应该是pop(Stack s, char& x),通过第二个参数来传出栈顶内容。
    push就是把一个字符送入栈顶,pop就是删除栈顶元素,并且返回。
    第一行
    [] -> c -> ca -> cak
    第二行
    cak -> ca -> cat -> catk
    第三行
    catk -> cat -> cats
    最后出栈stac,注意最后一次pop(s, x)出栈了k,所以最后输出x又输出了k
    结果是stack

    点赞 1 评论 复制链接分享
  • wangyaninglm shiter 2015-10-12 13:40

    pop就是对栈s,弹出栈顶元素到x中,其实就是个函数吧,一般都是s.pop

    点赞 评论 复制链接分享

相关推荐