
数据结构
文章平均质量分 62
LX_96
这个作者很懒,什么都没留下…
展开
-
广度优先遍历BFS
问题描述 栋栋最近开了一家餐饮连锁店,提供外卖服务。随着连锁店越来越多,怎么合理的给客户送餐成为了一个急需解决的问题。 栋栋的连锁店所在的区域可以看成是一个n×n的方格图(如下图所示),方格的格点上的位置上可能包含栋栋的分店(绿色标注)或者客户(蓝色标注),有一些格点是不能经过的(红色标注)。 方格图中的线表示可以行走的道路,相邻两个格点的距离为1。栋栋要送餐必须走可以行走的道路,原创 2017-03-30 20:39:37 · 538 阅读 · 0 评论 -
BFS2
I’m stuck!问题描述 给定一个R行C列的地图,地图的每一个方格可能是’#’, ‘+’, ‘-‘, ‘|’, ‘.’, ‘S’, ‘T’七个字符中的一个,分别表示如下意思: ‘#’: 任何时候玩家都不能移动到此方格; ‘+’: 当玩家到达这一方格后,下一步可以向上下左右四个方向相邻的任意一个非’#’方格移动一格; ‘-‘: 当玩家到达这一方格后,下一步可以向左右两个方向相邻的一个原创 2017-03-30 20:47:36 · 522 阅读 · 0 评论 -
queue
一.queue模版类的定义在头文件中。queue与stack模版非常类似,queue模版也需要定义两个模版参数,一个是元素类型,一个是容器类型,元素类型是必要的,容器类型是可选的,默认为dqueue类型。 定义queue对象的示例代码如下: queueq1; queueq2; queue的基本操作有: 1.入队:如q.push(x):将x元素接到队列的末端; 2.出队:如q.pop()原创 2017-03-30 21:00:08 · 631 阅读 · 0 评论 -
vector
vector(向量): C++中的一种数据结构,确切的说是一个类.它相当于一个动态的数组,当程序员无法知道自己需要的数组的规模多大时,用其来解决问题可以达到最大节约空间的目的. 用法: 1.文件包含: 首先在程序开头处加上#include<vector>以包含所需要的类文件vector 还有一定要加上using namespace std;2.变量声明: 2.1 例:声明一转载 2017-03-30 21:26:19 · 387 阅读 · 0 评论 -
sort
一、头文件:#include <algorithm> using namespace std;1.默认的sort函数是按升序排。对应于1)sort(a,a+n); //两个参数分别为待排序数组的首地址和尾地址2.可以自己写一个cmp函数,按特定意图进行排序。对应于2) 例如:int cmp( const int &a, const int &b ){ if( a > b ) ret转载 2017-03-30 21:35:13 · 485 阅读 · 0 评论 -
栈 stack
一、栈的介绍 栈(stack)是限定仅在表尾进行插入或删除操作的线性表表。因此,对栈来说表尾端有特殊的意义,称为栈顶(top),相应地,表头称为栈底(bottom)。不含元素的栈为空栈。 假设栈S = (a1,a2,a3,…an),则称a1为栈底元素,an为栈顶元素。栈中的元素按照a1,a2,a3,…an的次序入栈,退栈的第一个元素为栈顶元素。换句话说,栈的修改时按照后进先出的原则进行的即:LI原创 2017-03-31 15:21:39 · 630 阅读 · 0 评论 -
Dijkstra迪杰斯特拉算法+贪心
最短路径问题。我们通过一道ccf真题来讲解。 问题描述 G国国王来中国参观后,被中国的高速铁路深深的震撼,决定为自己的国家也建设一个高速铁路系统。 建设高速铁路投入非常大,为了节约建设成本,G国国王决定不新建铁路,而是将已有的铁路改造成高速铁路。现在,请你为G国国王提供一个方案,将现有的一部分铁路改造成高速铁路,使得任何两个城市间都可以通过高速铁路到达,而且从所有城市乘坐高速铁路到首都原创 2017-03-21 21:38:18 · 1421 阅读 · 0 评论