码迷,mamicode.com
首页 >  
搜索关键字:两个栈    ( 569个结果
【剑指offer】用两个栈实现队列
题目:用两个栈实现一个队列。队列的声明如下,请实现它的两个函数appendTail和deleteHead,分别完成在队列尾部插入结点和在队列头部删除结点的功能。 template class CQueue{ public: CQueue(); ~CQueue(); void appendTail(const T &node); T deleteHead(); private: st...
分类:其他好文   时间:2015-05-08 22:05:03    阅读次数:156
【leetcode】3 minstack
构建MinStack,实现一系列操作,包括push,pop,top,minstack(返回栈中最小元素)思路:利用原始栈,不过这里需要两个栈,一个栈mystack用于存储元素,另一个栈otherstack元素由小到大排列关键:mystack进行push(x)时,判断x与mystack的top()元素...
分类:其他好文   时间:2015-05-07 23:43:56    阅读次数:172
用两个栈实现队列
思路:假设两个栈分别为s1,s2,实现进队列:进队列push到s1即可实现出队列:首先判断s2中是否含有数据,如果有则pop即可,否则需要把s1中的数据逐个出栈,然后进入s2栈,pop s2栈即可(基本思想是一个栈负责进栈,另一个栈负责出栈)代码如下:#include#includeusing na...
分类:其他好文   时间:2015-05-07 22:00:21    阅读次数:124
3.7 队列中取最大值操作问题
问题: 假设有这样一个拥有3个操作的队列: 1. EnQueue(v): 将v加入队列中 2. DeQueue(): 使队列中的队首元素删除并返回此元素 3. MaxElement: 返回队列中的最大元素 设计一种数据结构和算法,让MaxElement操作的时间复杂度尽可能地低。 方法:用两个栈来模拟队列 在代码中,maxStackItemIndex代表栈中dui...
分类:其他好文   时间:2015-05-06 23:08:08    阅读次数:275
数据结构——栈的操作
栈是先进后出的,队列是先进先出的。栈顶在上面,栈是向上生长的,每次数据操作是压栈,最后的数据元素指向栈顶。实例:用两个栈实现队列题目:用两个栈实现一个队列,队列的声明如下,请实现他的连个函数,分别完成在队列尾部插入结点和在队列头部删除结点的功能。 1 templateclass CQueue 2 {...
分类:其他好文   时间:2015-04-27 19:58:59    阅读次数:151
进程内核栈、用户栈
进程内核栈、用户栈1.进程的堆栈 内核在创建进程的时候,在创建task_struct的同事,会为进程创建相应的堆栈。每个进程会有两个栈,一个用户栈,存在于用户空间,一个内核栈,存 在于内核空间。当进程在用户空间运行时,cpu堆栈指针寄存器里面的内容是用户堆栈地址,使用用户栈;当进程在内核空间时,cp...
分类:系统相关   时间:2015-04-16 23:30:35    阅读次数:236
进程的内核栈和用户栈
进程内核栈、用户栈 1.进程的堆栈      内核在创建进程的时候,在创建task_struct的同事,会为进程创建相应的堆栈。每个进程会有两个栈,一个用户栈,存在于用户空间,一个内核栈,存在于内核空间。当进程在用户空间运行时,cpu堆栈指针寄存器里面的内容是用户堆栈地址,使用用户栈;当进程在内核空间时,cpu堆栈指针寄存器里面的内容是内核栈空间地址,使用内核栈。 2.进程用户栈和内核栈的切...
分类:系统相关   时间:2015-04-15 17:17:16    阅读次数:150
toj 1196 栈的运用(模拟浏览器)
两个栈来模拟浏览器的操作,简单模拟。 1 #include 2 #include 3 #include 4 using namespace std; 5 6 stack forward; 7 stack back; 8 9 int main ()10 {11 string cur(...
分类:其他好文   时间:2015-04-13 20:41:47    阅读次数:107
用c++编程:用两个栈实现队列
栈s1和栈s2,栈s1专门为入队,栈s2专门为出队。入队:当s1和s2都为空时,直接入队s1。当s1为空,s2不为空时,把s2的元素都倒回s1,然后再入队s1出队:当s2不为空时,直接出队s2当s2为空且s1不为空时,把s1的元素都倒进s2,然后出队s2代码实现如下:#include #includ...
分类:编程语言   时间:2015-04-12 09:07:37    阅读次数:156
双端队列C实现代码 算法导论10.1-5 10.1-6 10.1-7
数组实现双端队列的时候注意区别判断上溢和下溢。用两个栈实现队列,就相当于把两个栈底靠在一起(背靠背),一个栈用来出队列,一个栈用来进队列。这个队列的操作时间大部分时候是常数时间,除了出列的栈为空,需要把进列的栈全部转移过去,再出列。Back()操作和Pop()操作类似,也是这样。而两个队列实现栈,队...
分类:编程语言   时间:2015-04-11 20:41:49    阅读次数:254
569条   上一页 1 ... 47 48 49 50 51 ... 57 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!