题目描述:用两个栈实现一个队列分析:栈的特性是后进先出,队列的特性是先进先出。如果用栈实现队列,入队的时候,应该直接给其中一个栈进行入栈操作,关键就在于怎样出队列,对于队列来说,出队列是在队头操作,也就是需要将先入栈(栈底元素)的元素让其出栈,显然,一个栈..
分类:
其他好文 时间:
2016-04-07 01:36:35
阅读次数:
145
题目描述 一个栈依次压入1,2,3,4,5那么从栈顶到栈底分别为5,4,3,2,1。将这个栈转置后,从栈顶到栈底为1,2,3,4,5,也就是实现了栈中元素的逆序,请设计一个算法实现逆序栈的操作,但是只能用递归函数来实现,而不能用另外的数据结构。 给定一个栈Stack以及栈的大小top,请返回逆序后的 ...
分类:
其他好文 时间:
2016-04-04 21:02:28
阅读次数:
162
栈(stack) 是限定在表尾进行插入或删除操作的线性表,这是栈的定义,所有从本质上来说栈仍旧是线性表的特殊延伸。对栈来说,表尾端有特殊的含义,代表着栈顶(top),相应的,表头端为栈底(bottom)。如果一个栈不含元素,则称其为空栈。栈遵循的是后进先出LIFO结构,即Last In First ...
分类:
编程语言 时间:
2016-04-04 10:18:24
阅读次数:
251
1. 程序中的栈 1.1 栈的简介 (1)栈中现代计算机程序里最为重要的概念之一 (2)栈在程序中用于维护函数调用上下文 (3)函数中的参数和局部变量存储在栈上 (4)栈保存了一个函数调用所需的维护信息 1.2 函数调用过程 (1)每次函数调用都对应着一个栈上的活动记录,调用函数的活动记录位于栈的中 ...
分类:
其他好文 时间:
2016-04-04 01:20:00
阅读次数:
207
#include<iostream>
usingnamespacestd;
structstack
{
int*_pElem;//指向元素数据的指针
int_capacity;
int_top;
stack(intn)
:_capacity(n)
{
_top=0;
_pElem=newint[_capacity];
}
~stack()
{
delete[]_pElem;
_pElem=NULL;
}
};
classStack
{
private:
stacks;
s..
分类:
其他好文 时间:
2016-04-01 06:42:13
阅读次数:
145
需要O(1)时间求出最小值。如果换成最大值,那就和“滑动窗口的最大值”一题思路差不多了。 用一个栈保存元素,用另一个栈来存储最小值,如果新增的元素比栈顶元素小则压入,否则不压入。 如果检测到第一个栈把最小元素弹出了,那么另一个栈也弹出栈顶元素。 “滑动窗口的最大值”更加复杂一点,而且是用deque保 ...
分类:
其他好文 时间:
2016-03-29 23:56:35
阅读次数:
189
一、JVM 内存模型 根据 JVM 规范,JVM 内存共分为虚拟机栈、堆、方法区、程序计数器、本地方法栈五个部分。 1、虚拟机栈:每个线程有一个私有的栈,随着线程的创建而创建。栈里面存着的是一种叫“栈帧”的东西,每个方法会创建一个栈帧,栈帧中存放了局部变量表(基本数据类型和对象引用)、操作数栈、方法 ...
分类:
其他好文 时间:
2016-03-27 01:40:29
阅读次数:
235
【说明】: 本文是左程云老师所著的《程序员面试代码指南》第一章中“用一个栈实现另一个栈的排序”这一题目的C++复现。 本文只包含问题描述、C++代码的实现以及简单的思路,不包含解析说明,具体的问题解析请参考原书。 感谢左程云老师的支持。 【题目】: 一个栈中元素的类型为整形,现在想将该栈从顶到底按从 ...
分类:
编程语言 时间:
2016-03-26 10:51:27
阅读次数:
173
语言部分:虚函数,多态。这个概念几乎是必问。STL的使用和背后数据结构,vector string map set 和hash_map,hash_set实现一个栈类,类似STL中的栈。这个题目初看非常简单,当时我还有点不屑,怎么出这么简单的题。但写过c++和没有写过c++的人写出的代码是一眼就能看出...
分类:
编程语言 时间:
2016-03-18 23:28:57
阅读次数:
367
局部变量表(虚拟机栈中的一部分)在编译期完成分配,运行期不会再改变大小; 每个方法对应一个栈帧(存储局部变量表、操作数栈、动态链接、方法出口等),栈帧被存储到虚拟机栈中,每个线程对应一个虚拟机栈,方法结束,栈帧生命周期结束,线程结束,虚拟机栈生命周期结束; 如果线程请求的虚拟机栈深度大于虚拟机所允许
分类:
其他好文 时间:
2016-03-17 19:24:46
阅读次数:
185