题意:1 x,表示放进x元素,2表示拿出一个元素,给出n条指令,然后2 x表示取出的数据是什么,问可以从输入输出判断出是哪种数据结构(栈,队列,优先队列),如果有多种满足,就输出not sure,都不是就输出impossible。
题解:直接定义三个数据结构的stl变量,然后模拟放入数据,到拿出数据时和三种比对判断,可以知道是哪种数据结构。
#include
#include
#i...
分类:
其他好文 时间:
2015-04-01 22:07:24
阅读次数:
150
#include
#include
#include
using namespace std;
/*两个队列模拟一个堆栈*/
/*队列A、B
入栈:将元素依次压入到非空的队列,第一个元素压倒对列A
出栈:把队列A的前n-1个元素倒到队列B,把第n个元素去掉。此时数据在B中,下次操作,则对B操作。
栈顶:把队列A的前n-1个元素倒到队列B,把第n个元素作为栈顶*/ ...
分类:
其他好文 时间:
2015-04-01 15:26:52
阅读次数:
112
2 基础数据结构数组和链表是实现各种数据结构的基石,本节中的三种最基本的数据结构都可以用数组或者链表来实现。2.1 栈用数组实现“栈”非常简单。下面以C++为例,实现一个简单的固定大小的“栈”。首先,接口API定义如下,核心函数就是push()和pop():2.1.1 数组实现下面用数组方式的实现“栈”,当然也可以用链表实现数组,但是一般尽管栈会处理很多操作,但任意时刻保存在栈中的元素不会很多,所...
分类:
其他好文 时间:
2015-03-31 22:19:47
阅读次数:
126
队列节点
QueueNode.h
#pragma once
#include
using namespace std;
template class QueueNode
{
public:
T data;
QueueNode* next;
QueueNode():next(NULL){};
QueueNode(T val):data(val),next(NULL){}
};
链式队...
分类:
其他好文 时间:
2015-03-31 18:09:30
阅读次数:
107
使用标准库的栈和队列时,先包含相关的头文件
#include
#include
定义栈如下:
stack stk;
定义队列如下:
queue q;
栈提供了如下的操作
s.empty() 如果栈为空返回true,否则返回false
s.size() 返回栈中元素的个数
s.pop() 删除栈...
分类:
编程语言 时间:
2015-03-30 09:26:58
阅读次数:
188
1.题目描述:点击打开链接
2.解题思路:本题要求根据输入的数据和输出的数据来猜测一种可能的数据结构,备选答案有“栈,队列,优先队列”,结果也可能都不是或者不确定。STL中已经有这三种数据结构了,因此直接模拟题意,输出时判断是否对应即可。注意:弹出时要判断一下是否已经为空。
3.代码:
#define _CRT_SECURE_NO_WARNINGS
#include
#include
#i...
分类:
其他好文 时间:
2015-03-16 17:48:25
阅读次数:
120
题目:给你一些数据结构上的操作,判断该数据结构是栈、队列、还是优先队列。
分析:初级DS,模拟。构建三种结构,直接模拟,然后根据结果判断。
说明:优先队列用最大堆实现。
#include
#include
#include
#include
#include
#include
using namespace std;
//stack
class stack
{
privat...
分类:
其他好文 时间:
2015-03-15 11:00:17
阅读次数:
151
小序
排序是非常重要且很常用的一种操作,有冒泡排序、选择排序、插入排序、希尔排序、快速排序、堆排序等多种方法。这里我们先简单介绍前三种排序算法和代码的实现,其余算法将在后续课程《数据结构》中学习到。算法只是一种思想,其实现依赖于数据结构,所以这里提取出一些典型的算法和数据结构,包括排序以及链表/堆栈/队列等结构的操作。
----------------------...
分类:
其他好文 时间:
2015-03-14 17:01:30
阅读次数:
204
---恢复内容开始--- 一直没有系统地学习过算法,不过算法确实是需要系统学习的。大二上学期,在导师的建议下开始学习数据结构,零零散散的一学期,有了链表、栈、队列、树、图等的概念。又看了下那几个经典的算法——贪心算法、分治算法、动态规划以及回溯算法。不过,都是知其一不知其二的一知半解。到最后,发现....
分类:
其他好文 时间:
2015-03-11 01:56:44
阅读次数:
172
Java集合类是一种特别有用的工具类,可以用于存储数量不等的多个对象,并可以实现常用的数据结构,如:栈、
队列等。除此之外,Java集合类还可用于保存具有映射关系的关联数组。Java集合大致可分为Set、List和Map三种
状态,其中Set代表无序、不可重复的集合;List代表有序、重复的集合;而Map代表具有映射关系的集合。
Java的集合...
分类:
编程语言 时间:
2015-02-27 21:33:56
阅读次数:
211