数据结构与算法
dsd2333
努力、奋进、拼搏,记住自己的目标
展开
-
栈与队列(一)—— 设计一个能够获取getMin功能的栈
【题目】:实现一个栈,其在实现栈的基本功能的基础上,实现返回栈中最小元素的操作。 【思考】:首先我们需要创建两个栈,其中一个栈用来保存当前栈中的元素,记为stackData,另一个栈用来保存我们每一步的最小值,这个栈记为stackMin。 【方案一】:压栈操作: 假定当前数据为newNum,首先将其压入stackData栈中,然后对stackMin进行判...原创 2018-11-19 11:48:16 · 166 阅读 · 0 评论 -
栈与队列(三)—— 猫狗队列
【题目】:已知宠物、猫和狗的类如下: public class Pet { private String type; public Pet(String type) { this.type = type; } public String getPetType() { return this.type; } } public class Dog extends Pet{...原创 2018-11-21 17:01:25 · 253 阅读 · 0 评论 -
栈与队列(二)—— 由两个栈组成一个队列
【题目】:编写一个类,用两个栈实现队列,支持队列的基本操作(add、poll、peek) 【思考】:栈的特点是先进后出,队列的特点是先进先出。因此我们要想用两个栈来完成队列就必须考虑如何将其转换成先进先出。逆向想一下,将两个栈反过来刚好可以实现队列的操作。 如果还不太理解的话,我们来一起看一下这张图来理解一下。 【方案】:具体实现是把一个栈作为压入...原创 2018-11-20 18:18:22 · 312 阅读 · 0 评论