3.2 请设计一个栈,除pop与push方法,还支持min方法,可返回栈元素中的最小值。push、pop和min三个方法的时间复杂度必须为O(1)。我们假设除了用一个栈s1来保存数据,还用另一个栈s2来保存这些非冗余最小值。那么, 当我们将数据压到要s1时,同时将它和s2的栈顶元素比较,如果不大于s...
分类:
其他好文 时间:
2014-12-04 11:43:03
阅读次数:
125
一、栈的定义栈是限定仅在表尾进行插入和删除操作的线性表;栈又称为后进先出的线性表(LIFO)。栈顶:允许插入和删除操作的一端称为栈顶;而另一端则为栈底。栈的操作:插入数据称为进栈(压栈、入栈);栈的删除操作称为出栈(弹栈)。如下图所示: 二、栈的抽象数据类型 栈是一种特殊的线性表,因...
分类:
其他好文 时间:
2014-12-01 00:38:49
阅读次数:
192
走迷宫Time Limit: 1000MS Memory limit: 65536K题目描述一个由n * m 个格子组成的迷宫,起点是(1, 1), 终点是(n, m),每次可以向上下左右四个方向任意走一步,并且有些格子是不能走动,求从起点到终点经过每个格子至多一次的走法数。输入 第一行一个整数.....
分类:
其他好文 时间:
2014-11-20 20:16:19
阅读次数:
227
## 简介这两个都是最基础最简单的数据结构。## 栈数据用一个数组来存储,再用一个变量来跟踪栈顶就足够了。栈的特点是后进先出,主要的方法就两个,Push压入栈,Pop弹出。class DSStack { private T[] _ds; private int _t...
分类:
其他好文 时间:
2014-06-15 16:37:14
阅读次数:
169
简单的利用javascript的数组实现数据结构中的堆栈和队列。Stack.js源码:12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758...
分类:
编程语言 时间:
2014-06-10 17:04:02
阅读次数:
257
栈与队列都是比较高级的数据结构,虽然不难,但有时有些问题也比较灵活,在《编程之美》与《剑指offer》上就有一些这样的题目。用队列模拟栈、用站栈模拟队列,以及现实队列与栈的最大值与最小值求解,这些都是基础的,只要理解栈的后进先出与队列的先进先出特点即可解决。
1、栈模拟队列
用两个栈,元素从一个栈stackA进入,从另一个栈stackB出来。进队列时直接添加到stackA,出队列时...
分类:
其他好文 时间:
2014-05-23 02:28:08
阅读次数:
213
栈与队列都是具有特殊存取方式的线性表,栈属于先进后出(FILO),而队列则是先进先出(FIFO)。栈能够将递归问题转化为非递归问题,这是它的一个重要特性。除了FILO、FIFO这样的最普遍存取方式外,还有一些扩展的数据结构,如双端队列、双栈、超队列、超栈等,它们是一种扩展与变异结构。
线性表有...
分类:
编程语言 时间:
2014-05-19 11:36:46
阅读次数:
369
二、栈与队列 1、栈的定义 栈(Stack)是限制仅在表的一端进行插入和删除运算的线性表。
(1)通常称插入、删除的这一端为栈顶(Top),另一端称为栈底(Bottom)。 (2)当表中没有元素时称为空栈。 (3)栈为后进先出(Last In
First Out)的线性表,简称为LI...
分类:
编程语言 时间:
2014-05-06 09:00:26
阅读次数:
414