【转】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);
}
}
}
原题:
用两个栈实现一个队列的功能?
思路:
假设两个栈 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);
}
}
}
发表评论
-
gcc gdb常用命令
2010-10-06 11:20 1075gdb 链接: http://fanqiang.chinau ... -
指针数组,数组指针
2010-10-02 14:40 681void test(char* a[]) { ... -
如何用栈实现递归与非递归的转换
2010-04-10 15:18 911http://bbs.chinaunix.net/viewth ... -
华为笔试2
2009-06-16 09:37 948【转】http://hi.baidu.com/xiao1dia ... -
华为笔试1
2009-06-16 09:35 992【转】http://hi.baidu.com/xi ... -
嵌入式程序员应该知道的16个问题
2009-05-29 15:41 1011【转】http://blog.csdn.net/s ... -
嵌入式程序员应该知道的16个问题
2009-05-29 15:39 1467【转】http://blog.csdn.net/seraphs ... -
嵌入式程序员应该知道的16个问题
2009-05-29 15:38 846【转】http://blog.csdn.net/s ... -
嵌入式程序员应该知道的16个问题
2009-05-29 15:37 850【转】http://blog.csdn.net/s ... -
c预编译 #define相关
2009-05-29 15:14 1165#是生成字符串: #define a(x) ... -
排序算法和二分查找
2009-05-17 15:50 773using namespace std; #includ ... -
C移位
2009-05-15 09:56 1327【转】 C提供了六种位运算运算符;这些运算符可能只允许整型操作 ... -
sizeof union struct 内存对齐
2009-05-14 20:30 2510【转】http://www.programfan.com/bl ... -
求100的阶乘
2009-05-06 16:32 1499#include <stdio.h> int m ... -
字符串操作
2009-05-03 15:19 787#include "stdafx.h" ... -
C字符串反转
2009-05-03 10:53 1745更改下面程序 #include string.h ... -
C链表相关
2009-05-03 10:38 755#include "stdafx.h" ... -
C题库连接
2009-04-29 09:28 734http://blog.chinaunix.net/u2/64 ...
相关推荐
问题:有两个栈s1和s2,实现队列的push和pop功能。 一般思路:始终维护s1作为存储空间,并以s2作为临时缓冲区。s1实现入队操作,s2实现出队操作。 1,入队时,将元素压入s1。 2,出队时,将s1的元素逐个...
本文实例讲述了PHP使用两个栈实现队列功能的方法。分享给大家供大家参考,具体如下: 问题 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 解决思路 两个栈。出栈的时候,如果栈2不为...
用量个栈实现一个队列,使其可以有进队和出队的操作。
要求用两个栈{stack1,stack2}实现一个队列,也就是说我们需要使用栈的push和pop功能来构造队列的push和pop功能。 栈我们用列表表示,相应的功能使用append和pop函数实现。 队列的push功能: 使用stack1来存储元素,...
用两个栈实现一个队列的功能?要求给出算法和思路
队列的声明如下,请实现它的两个函数 appendTail 和deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元示例:
用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 ) 思路 根据栈的特性...
# Python实现《剑指offer》 部分代码自己添加了一些测试用例, 或者自己添加了一些功能 1. 初级程序员注重算法和数据结构 2. 事先做好准备,对工作有热情 3. 面试过程放松。不要急于写代码,了解清楚所要解决的问题,...
# Python实现《剑指offer》 部分代码自己添加了一些测试用例, 或者自己添加了一些功能 1. 初级程序员注重算法和数据结构 2. 事先做好准备,对工作有热情 3. 面试过程放松。不要急于写代码,了解清楚所要解决的问题,...
本文实例讲述了PHP基于数组实现的堆栈和队列功能。分享给大家供大家参考,具体如下: 堆栈和队列是数据结构的两种实现形式,是使用非常广泛的存储数据的容器。下面呢,就分别讲下这两种容器在PHP中的应用: 一、使用...
有一个魔王总是使用自己的一种非常精练面抽象的语言讲话,没有人能听得慌,... 设计一个魔王语言转换系统,利用栈、队列实现相应的语言转换功能,程序可实现相应效果,同时可以进一步学习数据结构中的栈和队列操作过程。
用双端队列(deque)实现栈的功能, 数据结构作业 栈(先进后出)的一种数据结构 内含一个cpp文件和两个头文件。
1)问题描述:在主程序中设计一个简单的菜单,分别调用相应的函数功能: 1…建立链表 2…连接链表 3…输出链表 0…结束 2)实验要求:在程序中定义下述函数,并实现所要求的函数功能: CreateLinklist...
## 栈* 用数组实现一个顺序栈* 用链表实现一个链式栈* 编程模拟实现一个浏览器的前进、后退功能 ## 队列* 用数组实现一个顺序队列* 用链表实现一个链式队列* 实现一个循环队列 ## 递归* 编程实现斐波那契数列求值f(n...
1.线性表:数据存储像一条线一样的结构,每个线性表上的数据最多只有前和后的两个方向,如数组、链表、队列、栈等都是这种结构,所以实现的数组的动态操作,其他结构也可轻易的类似实现。更重要的是,在这之后看源码...
2)设计一个线性表,分别用顺序存储结构和链式存储结构实现,完成线性表的构造、查找、插入、删除、输出等基本操作。 3)掌握两种存储结构的优缺点以及在实际应用中如何选择存储方式。 4)选作:约瑟夫环的顺序存储...
数据结构课设选题:设停车场是一个可停放n课设选题辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北...此系统需要使用两个栈和两个队列实现停车场和等候队列功能。
001 第一个C程序 002 运行多个源文件 003 求整数之积 004 比较实数大小 005 字符的输出 006 显示变量所占字节数 007 自增/自减运算 008 数列求和 009 乘法口诀表 010 猜数字游戏 011 模拟ATM(自动柜员机...