题意:中文题,不解释
策略:广搜。第一道广搜题,先从目标点开始,进队列,标记此节点已被找过,以对首为起始点再找与它相连(并且没有被标记的)的结点入队尾,删除队首,然后在以此时的队首为起始点,标记此节点已被找过, 找与它相邻的点(并且没有被标记的),删除队首,一直循环直至所有节点都被找完。
代码:#include
#include
#include
#define MAXN 0x3f3f3f3f...
分类:
其他好文 时间:
2014-08-07 15:42:40
阅读次数:
262
1.队列的概念
队列是一种特殊的线性表,只允许在队列的一端进行插入而在另一端进行删除。
队列一般拥有队首(front指针)和队尾(rear指针),当一个队列并未存入数据的时候,front和rear指针均指向队首。
入队的操作:rear后移,存入数据在rear指向的单元,队满不可入队,这同时也表明front总是指向队首元素的前驱。
出队的操作:front后移,元素出队,队空不可出队。
注意...
分类:
其他好文 时间:
2014-08-04 17:45:48
阅读次数:
213
1.queue 队列queue的头文件是.定义queue对象的示例代码如:queueq; 队列内存放的是int类型的数queue 队列内存放的是double类型的数queueq; 队列内存放的是结构体类型入队列:q.push(x) 将x元素放到队列的末端。出队列:q.pop() 将第一个元素删除访问...
分类:
其他好文 时间:
2014-08-04 10:27:57
阅读次数:
284
双向链表的结点包含前驱指针和后继指针,队列入队操作是在双向链表尾部添加元素,队列的出队操作是把双向链表的头结点删除,判断队列是否为空只要判断双向链表的头指针是否指向了NULL即可。
# include
# include
using namespace std;
struct queueNode
{
int val;
queueNode *pre;
queueNode *next;...
分类:
其他好文 时间:
2014-08-02 12:55:03
阅读次数:
193
思路:
即二叉树的层序遍历。可以使用一个辅助队列,首先将二叉树的根节点入队,然后打印根结点的值,接着判断根结点
是否有左右孩子,如果有,将左右孩子入队。如此循环直到队列为空。
代码:
/*
从上到下遍历二叉树
by Rowandjj
2014/8/1
*/
#include
using namespace std;
typedef struct _BNODE_
{
i...
分类:
其他好文 时间:
2014-08-01 19:40:02
阅读次数:
245
#include
#include
typedef struct QNode
{ //构造结点类型
int data;
struct QNode *next;
}*QueuePtr;
typedef struct
{ QueuePtr front;
QueuePtr rear;
}LinkQueue;
void CreateQueue(LinkQueue &Q);//创建队列
void E...
分类:
其他好文 时间:
2014-08-01 13:51:24
阅读次数:
212
题意:有n个点,之间有m条双向路径,还有w个虫洞,单向,从一点到另一点需要花费时间,但是有虫洞的话会减少时间,一个人想要走某一条路使得他能碰到过去的自己,问这个图是否能让他实现他的想法。
其实就是判一个图是否存在负权值回路,SPFA可以实现,原理是:如果存在负权值回路,那么从源点到某个顶点的距离就可以无限缩短,因此就会无限入队,所以在SPFA中统计每个顶点的入队次数,如果超过了n个(顶点...
分类:
其他好文 时间:
2014-07-31 23:58:30
阅读次数:
397
队列(queue)
队列是一种先进先出(first in first out,FIFO)的线性表。它只允许在表的一端(队尾/rear)插入元素,而在另一端(队头/front)删除元素。插入操作称为入队或进队,删除操作称为出队或离队。队列示意图如下:
1、 顺序队
队列的顺序存储结构需要使用一个数组和两个整型变量来实现,数组用于存储队列中的所有元素,两个整型变量分别用于存储队头元素...
分类:
其他好文 时间:
2014-07-29 15:12:48
阅读次数:
251
队列也是数据结构中比较重要的一种,和栈相反的是,队列是先进先出的,先进队列的可以先出队,跟平时我们排队是一样的。在允许多通道程序运行的计算机系统中,同时几个作业运行。凡是申请输出的作业都从队尾进入队列。
现在用链表实现队列,先定义一个链表结点:
typedef struct QNode
{
int data;
QNode *next;
}QNode,*QueuePtr;给队列定义一个头结点...
分类:
其他好文 时间:
2014-07-27 11:33:22
阅读次数:
212
UVA 1203 - Argus
题目链接
题意:给定一些注册命令,表示每隔时间t,执行一次编号num的指令,注册命令结束后,给定k,输出前k个执行顺序
思路:用优先队列去搞,任务时间作为优先级,每次一个任务出队后,在把它下次执行作为一个新任务入队即可
代码:
#include
#include
#include
using namespace std;
ch...
分类:
其他好文 时间:
2014-07-26 02:31:16
阅读次数:
181