1. 面试的时候,栈和队列经常会成对出现来考察。本文包含栈和队列的如下考试内容:(1)栈的创建(2)队列的创建(3)两个栈实现一个队列(4)两个队列实现一个栈(5)设计含最小函数min()的栈,要求min、push、pop、的时间复杂度都是O(1)(6)判断栈的push和pop序列是否一致2. 具体...
分类:
编程语言 时间:
2015-10-23 18:06:40
阅读次数:
266
队列的特别实现组合使用两个栈的后进先出可以实现队列的先进先出,简单高效,入队和出队的时间复杂度可以到 O(1)SQueue.h#ifndef _SQUEUE_H_#define _SQUEUE_H_typedef void SQueue;SQueue* SQueue_Create();void SQ...
分类:
其他好文 时间:
2015-10-11 16:43:58
阅读次数:
256
题目:如何用两个栈模拟实现一个队列? 如果这两个堆栈的容量分别是m和n(m>n),你的方法能保证的队列容量是多少?(这里讨论的是顺序栈,如果是链式栈的话完全没有必要考虑空间) 分析:栈的特点是“后进先出(LIFO)”,而队列的特点是“先进先出(FIFO)”。用两个栈模拟实现一个队列的基本思路是...
分类:
其他好文 时间:
2015-10-09 22:42:26
阅读次数:
392
逆波兰式:Reverse Polish notation,RPN,,也叫后缀表达式,将运算符写在操作数之后数据结构:两个栈S1和S2。S1临时存储运算符,S2存储最终结果。算法:(1)若取出的字符是操作数,则分析出完整的运算数,该操作数直接送入S2栈(2)若取出的字符是运算符,则将该运算符与S1栈栈...
分类:
其他好文 时间:
2015-10-01 11:40:42
阅读次数:
280
用两个栈实现队列参与人数:3047时间限制:1秒空间限制:32768K通过比例:34.71%最佳记录:0 ms|0K(来自青哥)题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 思路1(最普通的方法): 1、入队时,直接压入到stack1中; ...
分类:
其他好文 时间:
2015-09-28 11:43:10
阅读次数:
138
【问题描述】 用两个栈使一个1...n的排列变得有序。一共有四个操作: A.stack1.push() 读入一个放入栈一 B.stack1.pop() 弹出栈一放入输出序列 C.stack2.push() 读入一个放入栈二 D.stack2.pop() 弹出栈二放入输出序列 ...
分类:
编程语言 时间:
2015-09-23 16:37:35
阅读次数:
314
题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 1 class Solution 2 { 3 public: 4 void push(int node) { 5 stack1.push(node); 6 } 7 8 ...
分类:
其他好文 时间:
2015-09-20 00:09:37
阅读次数:
146
下面是牛客网剑指Offer编程题的一些解题报告,目前还没刷完,会一篇篇加上来。
跳台阶
变态跳台阶
矩形覆盖
重建二叉树
替换空格
用两个栈代替队列
斐波那契数列
二进制中 1 的个数...
分类:
其他好文 时间:
2015-09-18 10:27:41
阅读次数:
182
问题描述:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。算法分析:push:
1.将数据压入stack1;pop:
1.将stack1中所有数据弹出到stack2;
2.将stack2中第一个数弹出设置为返回值;
3.将stack2中所有数据弹出到stack1;
4.将返回值返回代码实现class Solution
{
public:
void...
分类:
其他好文 时间:
2015-09-17 01:13:24
阅读次数:
212
一:进程的堆栈 内核在创建进程的时候,在创建task_struct的同时会为进程创建相应的堆栈。每个进程会有两个栈,一个用户栈,存在于用户空间,一个内核栈,存 在于内核空间。当进程在用户空间运行时,cpu堆栈指针寄存器里面的内容是用户堆栈地址,使用用户栈;当进程在内核空间时,cpu堆栈指针寄存...
分类:
系统相关 时间:
2015-09-12 10:46:40
阅读次数:
243