GoBiOlderWang 2017-07-04 10:18 采纳率: 0%
浏览 1732
已采纳

如何用两个列队(list)实现一个栈

请描述如何用2个队列(List,特征:先进先出)实现一个栈(Stack,特征:先进后出)。可用伪代码或代码实现。
  • 写回答

4条回答 默认 最新

  • 张大教主 2017-07-04 10:42
    关注
    上面顺手写错了一点:j<q1.length
        思路给你说一下哈:
    假设两个队列分别为 q1,q2
    q1队列元素为:1,2,3,4,5
    那么出列的顺序应该也是 1>2>3>4>5
    理想的栈顺序应该是:5>4>3>2>1
    那么请q2就起作用了
    对q1按倒叙取值(5,4,3,2,1)依次放入到q2中,
    for(int i=q1.length-1;i>=0;i--){
        for(int j=0;j<q1.length;j++){
                q2[j].push(q1[i]);
          }
    }
    那么q2的队列入队顺序就变成了:5,4,3,2,1
    for(int i=0;i<q2.length;i++){
        alert(q2[i]);
    }
    只需对q2顺序出列就OK了
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作