`
bliuqing
  • 浏览: 64602 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
最近访客 更多访客>>
社区版块
存档分类
最新评论

用两个栈实现一个队列的功能

阅读更多
【转】http://hi.baidu.com/liangjw821/blog/item/74c98ed520f299cc51da4b86.html
原题:

用两个栈实现一个队列的功能?

思路:

假设两个栈 A 和B,且都为空。
可以认为栈 A 为提供入队列的功能,栈 B 提供出队列的功能。
入队列: 入栈 A
出队列:
1 如果栈B 不为空,直接弹出栈 B 的数据。
2 如果栈 B 为空
2.1 若A不为空,则依次弹出栈 A 的数据,放入栈 B 中,再弹出栈 B 的数据。
2.1 若A为空,则队列为空。
int enqueue(stack s1,elemtp x)
{
    PUSH(s1,x);
    return(1);
}

ElementType  dequeue(stack s2,stack s1)
{
    if(!empty(s2))//s2 is not empty
    {
         return POP(s2);
    }
    else
    {
     if(empty(s1)
     {    printf("队列为空"); exit(0);
     }
      else
       {
             while(!empty(s1)
             {
                 ElementType t;
                 POP(s1,t);
                 push(s2,t); 
             }  
             return pop(s2);
       }
    }
}
分享到:
评论

相关推荐

    C/C++之用两个栈实现一个队列的功能

    问题:有两个栈s1和s2,实现队列的push和pop功能。  一般思路:始终维护s1作为存储空间,并以s2作为临时缓冲区。s1实现入队操作,s2实现出队操作。  1,入队时,将元素压入s1。  2,出队时,将s1的元素逐个...

    PHP使用两个栈实现队列功能的方法

    本文实例讲述了PHP使用两个栈实现队列功能的方法。分享给大家供大家参考,具体如下: 问题 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 解决思路 两个栈。出栈的时候,如果栈2不为...

    C语言用两个栈实现一个队列的功能

    用量个栈实现一个队列,使其可以有进队和出队的操作。

    剑指offer刷题记录之用两个栈实现队列

    要求用两个栈{stack1,stack2}实现一个队列,也就是说我们需要使用栈的push和pop功能来构造队列的push和pop功能。 栈我们用列表表示,相应的功能使用append和pop函数实现。 队列的push功能: 使用stack1来存储元素,...

    用两个栈实现一个队列的功能?要求给出算法和思路

    用两个栈实现一个队列的功能?要求给出算法和思路

    用两个栈实现队列1

    队列的声明如下,请实现它的两个函数 appendTail 和deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元示例:

    (剑指offer)面试题09. 用两个栈实现队列

    用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 ) 思路 根据栈的特性...

    Python《剑指offer》算法实现-用两个栈实现队列

    # Python实现《剑指offer》 部分代码自己添加了一些测试用例, 或者自己添加了一些功能 1. 初级程序员注重算法和数据结构 2. 事先做好准备,对工作有热情 3. 面试过程放松。不要急于写代码,了解清楚所要解决的问题,...

    Python《剑指offer》算法实现-用两个队列实现栈

    # Python实现《剑指offer》 部分代码自己添加了一些测试用例, 或者自己添加了一些功能 1. 初级程序员注重算法和数据结构 2. 事先做好准备,对工作有热情 3. 面试过程放松。不要急于写代码,了解清楚所要解决的问题,...

    PHP基于数组实现的堆栈和队列功能示例

    本文实例讲述了PHP基于数组实现的堆栈和队列功能。分享给大家供大家参考,具体如下: 堆栈和队列是数据结构的两种实现形式,是使用非常广泛的存储数据的容器。下面呢,就分别讲下这两种容器在PHP中的应用: 一、使用...

    栈、队列实现魔王语言转换(编程实例)

    有一个魔王总是使用自己的一种非常精练面抽象的语言讲话,没有人能听得慌,... 设计一个魔王语言转换系统,利用栈、队列实现相应的语言转换功能,程序可实现相应效果,同时可以进一步学习数据结构中的栈和队列操作过程。

    数据结构-用双端队列实现栈

    用双端队列(deque)实现栈的功能, 数据结构作业 栈(先进后出)的一种数据结构 内含一个cpp文件和两个头文件。

    实验一: 线性结构应用栈与队列应用.docx

    1)问题描述:在主程序中设计一个简单的菜单,分别调用相应的函数功能: 1…建立链表 2…连接链表 3…输出链表 0…结束 2)实验要求:在程序中定义下述函数,并实现所要求的函数功能: CreateLinklist...

    数据结构和算法必知必会的50个代码实现

    ## 栈* 用数组实现一个顺序栈* 用链表实现一个链式栈* 编程模拟实现一个浏览器的前进、后退功能 ## 队列* 用数组实现一个顺序队列* 用链表实现一个链式队列* 实现一个循环队列 ## 递归* 编程实现斐波那契数列求值f(n...

    C++实现动态数组功能

    1.线性表:数据存储像一条线一样的结构,每个线性表上的数据最多只有前和后的两个方向,如数组、链表、队列、栈等都是这种结构,所以实现的数组的动态操作,其他结构也可轻易的类似实现。更重要的是,在这之后看源码...

    c++数据结构-实验.zip

    2)设计一个线性表,分别用顺序存储结构和链式存储结构实现,完成线性表的构造、查找、插入、删除、输出等基本操作。 3)掌握两种存储结构的优缺点以及在实际应用中如何选择存储方式。 4)选作:约瑟夫环的顺序存储...

    数据结构课程设计:停车场管理系统 该文件包含完整的源代码和课设报告,该程序是在Visual Studio 2022作为编程环境

    数据结构课设选题:设停车场是一个可停放n课设选题辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北...此系统需要使用两个栈和两个队列实现停车场和等候队列功能。

    200个经典C程序【源码】

    001 第一个C程序 002 运行多个源文件 003 求整数之积 004 比较实数大小 005 字符的输出 006 显示变量所占字节数 007 自增/自减运算 008 数列求和 009 乘法口诀表 010 猜数字游戏 011 模拟ATM(自动柜员机...

Global site tag (gtag.js) - Google Analytics