1.单纯用list就可以实现,但并未用到队列相关知识。 2.用两个队列(实际上是两个list)实现栈。 思路: queue1用来存放数据,每次入栈就插入queue1索引值为0的地方。queue2为出栈时的辅助队列,将queue1[1:-1]的元素出队然后入队queue2(也就是queue1逆序压入q ...
分类:
其他好文 时间:
2019-02-19 11:59:57
阅读次数:
172
# 根节点作为入口, 队列先进先出。 出队的地方是根结点的下一个结点. 入口是尾结点 class Node(object): def __init__(self, value=None, next=None): self.value = value self.next = next def __st... ...
分类:
编程语言 时间:
2019-02-14 10:27:42
阅读次数:
127
一、线程的其他方法 2.threading直接可以使用的方法 二、线程队列 2.LifoQueue--先进后出队列,获取顺序类似栈 这就是一个继承了Queue的列表,其他的方法就是继承于Queue。 第一步初始化一个列表: 第二步添加数据: 第三部删除数据: 3.PriorityQueue--优先级 ...
分类:
编程语言 时间:
2019-02-08 16:02:04
阅读次数:
214
线程间使用队列来互相交换数据,数据可以是字符串 、列表 、元组等,Queue 是提供队列操作的模块,常见的队列如下: FIFO:First In First Out 先进先出队列,也就是最先放进去的数据,会被先拿出来,可以用 Queue.Queue() 来实现LIFO:Last In First O ...
分类:
编程语言 时间:
2019-02-07 21:58:39
阅读次数:
147
队列是一种先进先出 (FIFO) 的数据结构,它允许在一端插入数据,在另一端删除数据。最先进入队列的数据最先出队列。除此之外,队列还允许访问队头元素和队尾元素、获取队列长度和判断空列队等操作。队列不提供遍历的方法,也不提供迭代器。 back()返回最后一个元素 empty()如果队列空则返回真 fr ...
分类:
其他好文 时间:
2019-02-06 15:53:05
阅读次数:
163
队列 队列是FIFO表,使用队列时在队尾(rear)插入元素,称之为入队(enqueue),以及在对头(front)删除并返回元素值,称之为出队(dequeue). 任何表的实现都可以用于实现队列结构,链表实现比较简单;数组实现其中可以使用循环数组结构,即入队时在数组队列中前端不满,后端已经满了,则 ...
分类:
其他好文 时间:
2019-02-02 13:04:12
阅读次数:
157
题目链接:https://www.luogu.org/problemnew/show/P1090 思路: 典型的贪心题,显然每次选择两个最小的堆合并最后耗费的体力最少,但每次合并之后都需要寻找最小的两个堆。假如每次合并之后都排一次序,一定会超时的。 可以有很多实现方法,一种是使用优先队列,每次出队两 ...
分类:
其他好文 时间:
2019-01-31 19:15:05
阅读次数:
259
题目链接: "戳我" 就是尽可能地选取排名小的,加起来就可以了。然后我们考虑利用一个大根堆,一个一个合并,如果超过派遣的钱,我们就把费用最大的那个忍者丢出队列。 左偏树,作为一个十分优秀的可并堆,我们这道题利用的就是这个数据结构。 左偏树不会? "戳我" 这里有一张来自HolseLee dalao的 ...
一.栈一.顺序栈的实现A.栈的定义1.栈是一种特殊的线性表2.栈仅能在线性表的一端进行操作a.栈顶:允许操作的一端b.栈底:不允许操作的一端B.栈的特性后进先出(图示)C.栈的操作1.创建栈2.销毁栈3.清空栈4.进栈5.出栈6.获取栈顶元素7.获取栈的大小D.栈的实现template<typenameT>classStack:publicObject{public:virtualvo
分类:
其他好文 时间:
2019-01-28 12:01:06
阅读次数:
213
1、定义:将优先级最高的元素先出队列的队列。 2、基本操作:入队(插入),出队(删除优先级最高的元素,代码中以元素值最小为优先级最高),构建堆, 修改元素等。 3、二叉堆:父节点小于子节点的完全二叉树。 性质: (1)结构性:完全二叉树结构 (2)堆序性:父节点的值小于子节点的值 3、代码实现: ( ...
分类:
其他好文 时间:
2019-01-27 21:33:47
阅读次数:
209