思路:栈s1和栈s2,s1用来Push数据,s2用来Pop数据入队:数据直接压入栈s1中出队:若s2为空,则把s1中除过最后一个压入的元素全部移入s2中,然后弹出s1的栈顶元素若s2不为空,直接弹出s2的栈顶元素#define_CRT_SECURE_NO_WARNINGS1#include<iostream>#include<stack&g..
分类:
其他好文 时间:
2016-05-15 19:59:30
阅读次数:
210
1、两个栈实现一个队列 有三种思路: 思路一:将stack1作为存储空间,将stack2作为临时缓冲区,入队时,直接压入stac1,出队时,将stack1中的元素依次出栈压入stack2中,再将stack2的栈顶元素弹出,最后将stack2中的元素再倒回给stack1 思路二:入队时,判断stack ...
分类:
其他好文 时间:
2016-05-13 20:38:54
阅读次数:
132
循环队列的初始化、入队、出队等基本操作,实现代码如下:#include<iostream>usingnamespacestd;#defineTRUE1#defineFALSE0//循环队列的类型定义#defineMAXSIZE50//队列的最大长度typedefstruct{ intelement[MAXSIZE];//队列的元素空间 intfront;//头指针指示器 intrear;..
分类:
其他好文 时间:
2016-05-13 04:46:30
阅读次数:
495
1.用两个栈实现队列
分析:队列的特点是“先进先出”,而栈的特点是“后进先出”,入队列时让所有的元素进到stack1中,出队列时先判断stack2是否为空,不为空直接pop即可,若为空,将stack1中所有的元素“倒入”stack2中,这样就用两个栈实现了队列。
实现代码:
class Solution
{
public:
void push(int node) {
...
分类:
其他好文 时间:
2016-05-12 16:28:22
阅读次数:
149
链队列的初始化、入队、出队等基本操作实现代码如下:#include<iostream>usingnamespacestd;#defineTRUE1#defineFALSE0//链队列定义typedefstructNode{ intdata;//数据域 structNode*next;//指针域}LinkQueueNode;typedefstruct{ LinkQueueNode*front;//队头指针front Li..
分类:
其他好文 时间:
2016-05-10 18:56:25
阅读次数:
235
例题:POJ - 2259 (http://poj.org/problem?id=2259) 题目大意:在队伍中,一个元素要入队,先会看看队伍中有没有跟它同队的队友,如果有,它会直接插在队友的后面,如果没有,那就插在整个队伍后面。出队时,整个队伍从头到尾出列。就好像我们平时排队一样,先看看队里有没有 ...
分类:
其他好文 时间:
2016-05-09 20:29:13
阅读次数:
155
队列和栈类似,不过与栈要求在同一端添加和删除数据项不同,是先进先出,和生活中排队一样 常用的操作有 入队(enqueue) 出队(dequeue) 队列的应用: 图的广度优先搜索算法; 优先队列(Priority Queue),此队列是取出元素时根据所存元素的某个特征值或优先权 操作系统的工作调度,... ...
分类:
其他好文 时间:
2016-05-08 10:26:40
阅读次数:
144
AQS中一定要记住2点:
1.处理流程:
if(!请求成功)
加入队列
2.请求是对state的判断,AQS不关心你state表示什么,你可以表示状态也可以表示数量,由子类实现对请求的判断。将规则的判断和规则的处理分离,有点像模板模式。
先想想什么是独占什么是共享,举个栗子:独占就像大家拿号去排队体检,你拿号了发现前面还有n个人,没办法,等吧,然后你前面的人体检完了,医生就说,你通知下一...
分类:
其他好文 时间:
2016-05-07 10:05:20
阅读次数:
133
题目:俩个桟实现一个队列,请实现它的俩个函数appendTail/deleteHead
算法思路:
入队:将元素压入桟s1中;//appendTail
出队:先判断s2中是否为空,如果不为空,直接弹出栈顶元素;否则,将s1中的元素逐个弹出并压入桟s2中,把最后一个元素弹出并出队;//deleteHead
判断队列是否为空(empty()):判断s1/s2中都没有元素时,返回true...
分类:
其他好文 时间:
2016-05-07 07:27:06
阅读次数:
136
通过题目我们可以看出这篇文章将介绍什么,栈、队列、链表本质上是数据结构中的东西,通过这章的学习能够给今后数据结构的学习打下一点基础。 队列: 我们通过一个简单的谜题来引入队列的概念,给出一串9位的加密QQ号,对于这串数字,删除第一位数字,然后将第二位数字放到这串数字的最后。反复操作,直到这一串数字的 ...
分类:
编程语言 时间:
2016-05-05 22:13:00
阅读次数:
149