题目:
假设有这样一个拥有三个操作的队列:
1.EnQueue(v):将v加入队列中
2.DeQueue:使队列中的队首元素删除并返回此元素
3.MaxElement:返回队列中的最大元素
请设计一种数据结构和算法,让MaxElement操作的时间复杂度尽可能地低。
解法一:
解法二:...
分类:
其他好文 时间:
2015-05-07 08:58:46
阅读次数:
116
问题:
假设有这样一个拥有3个操作的队列:
1. EnQueue(v): 将v加入队列中
2. DeQueue(): 使队列中的队首元素删除并返回此元素
3. MaxElement: 返回队列中的最大元素
设计一种数据结构和算法,让MaxElement操作的时间复杂度尽可能地低。
方法:用两个栈来模拟队列
在代码中,maxStackItemIndex代表栈中dui...
分类:
其他好文 时间:
2015-05-06 23:08:08
阅读次数:
275
分析:使用优先队列.
以next为优先级,小的先出队
读入数据后排序,初始化队列第一个元素(0,a[0],0)
每次出队一个元素,入队(sum,sum+a[nextid+1],nextid+1),(next,next+a[nextid+1],nextid+1),即是否加上a[nextid+1]都考虑进去了。
这样每次新加入的元素都是下一个最小的(next),进行m次就得到了第m小。
...
分类:
其他好文 时间:
2015-05-06 15:08:18
阅读次数:
94
1 访问一个有操作系统管理的线程池WaitCallback 委托是将任务排入队列以供线程池执行,ThreadPool.QueueUserWorkItem方法在线程池中创建一个线程池线程来执行指定的方法(用委托WaitCallback来表示),并将该线程排入线程池的队列等待执行。ThreadPool....
分类:
编程语言 时间:
2015-05-05 19:22:33
阅读次数:
145
使用链式前向星储存边,代码如下://先将图中没有前驱(即入度为0)的顶点加入队列For i:=1 to n do if d[i]=0 thenBegin Inc(tot); q[tot]:=i;End;//使用队列中的点更新d数组并生成拓扑序列Iq:=0;While iq-1 doBegin Dec...
分类:
编程语言 时间:
2015-05-05 14:14:40
阅读次数:
148
队列的顺序存储结构队列的顺序存储结构也就是说用的是数组来实现入队出队操作,但看似简单的问题却有值得思考的地方:【方案一 】(出队时总是增加front的值)这个方案的想法是,我们new一个数组,然后用一个指针base来保存其首元素的地址,用一个整数front来记录数组里面的首元素的序号,用一个rea....
分类:
其他好文 时间:
2015-05-04 17:41:59
阅读次数:
252
1.题目描述:点击打开链接
2.解题思路:本题利用BFS解决。由于行走的时候有两种情况,当遇到‘X'时会掉到下一层,当遇到’.'时还在本层,只不过’.'要变为'X'。那么直接用BFS进行搜索即可。如果遇到了’X',只需要判断是不是终点即可,否则跳过,如果遇到了‘.',那么将它改为‘X',并入队列即可。比赛时我一直在DFS和BFS之间徘徊不定,但其实不难发现,如果用DFS的话,可能有走不动的情况,...
分类:
其他好文 时间:
2015-05-01 14:49:10
阅读次数:
136
题意:给出一个矩阵迷宫,要求用1×2的积木填满空白区域,问解法是否唯一,如果无解或者多解均输出“Not unique"。分析:广搜。看似二分图匹配但实际上不是。我们认为每个点和上下左右四个点连接(只考虑空白的点)。先把度为0的点全部入队。每次弹出一个点a,把那个唯一与它链接的点b与a配对。切断b的所...
分类:
其他好文 时间:
2015-05-01 11:59:45
阅读次数:
143
最近想上手Python。快速入门一门语言的方法就是写个小Demo。Python Demo必须是爬虫了。第一个小爬虫程序有些简陋,高手勿喷。关于爬虫主要分为三个部分:根据队列中的URL爬取界面、获取内容、保存结果。程序是以百度网站大全为种子URL,抓取页面中URL依次放入队列中,爬虫从URL队列依次取得新URL继续向外爬取。# -*- coding: utf-8 -*-
import urllib2...
分类:
编程语言 时间:
2015-04-29 21:47:24
阅读次数:
154
队列的基本概念1 队列的基本概念
队列(Queue):也是运算受限的线性表。是一种先进先出(First In First Out ,简称FIFO)的线性表。只允许在表的一端进行插入,而在另一端进行删除。
队首(front) :允许进行删除的一端称为队首。
队尾(rear) :允许进行插入的一端称为队尾。
例如:排队购物。操作系统中的作业排队。先进入队列的成员总是先...
分类:
其他好文 时间:
2015-04-29 11:51:13
阅读次数:
211