05 2014 档案

摘要:算法简介 前面介绍过图的单源最短路径算法Dijkstra算法,然而Dijkstra算法无法判断含负权边的图的最短路。如果遇到负权,在没有负权回路存在时(负权回路的含义是,回路的权值和为负。)即便有负权的边,也可以采用Bellman-Ford算法正确求出最短路径。 Bellman-Ford... 阅读全文
posted @ 2014-05-31 16:58 F8Master 阅读(992) 评论(0) 推荐(0)
摘要:1、综述 set是C++STL中众多的Container(容器)之一,用于储存数据并且能从一个数据集合中取出数据,它的每个元素的值必须惟一。set内部通过自建红黑树(一种非严格意义上的平衡二叉树)实现,可以对数据自动排序。构造set集合主要目的是为了快速检索,不可直接去修改键值。2、set的常见... 阅读全文
posted @ 2014-05-20 00:16 F8Master 阅读(625) 评论(0) 推荐(0)
摘要:1、综述 Map是C++STL中众多的Container(容器)之一,与python的字典略类似,Map作为一个关联容器,将key与value相互关联,其中key为关键字,是不可更改的,而value是key值的相对应值。Map所提供的一对一的数据映射关系,在很多时候可以提供编程的极大便利。 ... 阅读全文
posted @ 2014-05-19 22:35 F8Master 阅读(432) 评论(0) 推荐(0)
摘要:本文介绍的是图的非负权值的单源最短路径问题。问题的提出是,对于有权图D,t提供源点v,要找到从v到其他所有点的最短路径,即单源最短路径问题,在本文中,解决这一问题,是普遍比较熟悉的Dijkstra算法。 算法核心思想参见维基。简而言之,设集合S存放已经求出了最短路径的点。初始状态S中只... 阅读全文
posted @ 2014-05-12 23:33 F8Master 阅读(336) 评论(0) 推荐(0)
摘要:图的最小生成树,就是基于图,假设其有n的顶点,那么就要构建一颗连通树,使其各边权重和最小。最小生成树的实现算法主要有两种:Prim算法和Kruskal算法。Prim算法在前面已经介绍过,本文着重介绍Kruskal算法及其实现,其中图的实现以及相关操作,采用前面博文C++ 图的实现中的实现方式... 阅读全文
posted @ 2014-05-12 22:08 F8Master 阅读(235) 评论(0) 推荐(0)
摘要:图的最小生成树,就是基于图,假设其有n的顶点,那么就要构建一颗连通树,使其各边权重和最小。最小生成树的实现算法主要有两种:Prim算法和Kruskal算法。本文着重介绍Prim算法及其实现,其中图的实现以及相关操作,采用前面博文C++ 图的实现中的实现方式,由于本文重点在于Prim算法的实现... 阅读全文
posted @ 2014-05-12 21:57 F8Master 阅读(303) 评论(0) 推荐(0)
摘要:在C++中,各种输入方法还是不少的,而且各有所异,本文做一点简要总结,主要涉及如下内容:cin、cin.get()、cin.getline()、getline()、gets()、getchar()。 输入原理简述: 程序的输入都建有一个缓冲区,即输入缓冲区。每次输入过程是这样的,当... 阅读全文
posted @ 2014-05-11 00:20 F8Master 阅读(605) 评论(0) 推荐(0)
摘要:缺省构造函数,又称默认构造函数,是C++以及其他的一些面向对象的程序设计语言中,对象的不需要参数即可调用的构造函数。下面将针对缺省构造函数的定义、使用、以及注意问题等方面简要探讨。 1、缺省构造函数是怎样的形式?是如何定义的? 在C++的一个类中,如果构造函数没有参数,或者构造函... 阅读全文
posted @ 2014-05-10 16:01 F8Master 阅读(1660) 评论(0) 推荐(0)
摘要:一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。... 阅读全文
posted @ 2014-05-10 13:56 F8Master 阅读(211) 评论(0) 推荐(0)
摘要:本文针对迷宫问题,探讨解决思路并给出实现代码。在本文中,采用的图的深度优先搜索和广度优先搜索两种方法分别对迷宫的路径进行了求解。 首先来看迷宫问题的描述,可以参考此处,简而言之就是,通过一个二维数组(int型)来表示迷宫,迷宫中0表示可行,1表示不可行。在本文的实现中,可以输入给定迷宫... 阅读全文
posted @ 2014-05-08 23:18 F8Master 阅读(1126) 评论(0) 推荐(0)
摘要:图的遍历主要有两种方法,第一种是之前博文中介绍过的“图的深度优先遍历”,简称DFS;另一种就是图的广度优先遍历(BFS),在本文中将进行简要探讨。 BFS要做的事,从给定点出发,遍历的一次探寻到所有顶点。其基本思路很容易理解,在此我们利用队列q来存储访问的顶点,用visited[]数组... 阅读全文
posted @ 2014-05-08 18:55 F8Master 阅读(351) 评论(0) 推荐(0)
摘要:队列(先进先出)和栈(先进后出)都是常用的经常讨论的基本的数据结构,本文要讨论的是一对有趣的问题:如何用两个栈(队列)实现一个队列(栈),下面将分别说明,并附示例代码。 1、用两个栈实现一个队列 基本思路:初始有两个空栈s1和s2,当入队列是,将元素加入s1,而出队列则从s2出,... 阅读全文
posted @ 2014-05-08 12:11 F8Master 阅读(636) 评论(0) 推荐(0)
摘要:上一篇刚刚学习了C++图的实现,今天对深度优先搜索(DFS)进行了一定学习,并作出一定实现。在本文中图的实现,以及相应的函数调用(如获得第一个邻接顶点、获得下一个邻接顶点等)均是基于上文中的实现,故如果想参考测试代码,还需导入上文中相应的类定义。关于C++图的实现可参考此处,这里实现了对图的... 阅读全文
posted @ 2014-05-07 22:39 F8Master 阅读(4527) 评论(0) 推荐(0)
摘要:图可以说是算法与数据结构中十分重要的一个部分,然而对于图的实现,还是有一点点繁琐,今天参考清华大学出版社《数据结构》一书进行了一些回顾,记录于此。本文并不对基本概念进行过多探讨,而着眼于实现。基于对途中边集的存储有邻接矩阵以及邻接表两种主要形式。本文将着重实现三个类:Graph基类,包含大量的vir... 阅读全文
posted @ 2014-05-06 20:26 F8Master 阅读(769) 评论(0) 推荐(0)
摘要:在Windows下进行C++程序设计,VS2010是颇为常用的工具。然而在连续使用eclipse一段时间后,笔者对于VS2010的代码提示功能实在有些不满,好在可以通过配置插件Visual Assist X 加以解决,本文就对此说明。Visual Assist X具有强大的编辑特色,提高了生... 阅读全文
posted @ 2014-05-06 11:11 F8Master 阅读(3655) 评论(0) 推荐(0)
摘要:本文转载自:http://www.cnblogs.com/wly603/archive/2012/05/26/2519171.html概要: C++中经常出现函数名字一样,但参数列表或返回值不同的函数,要搞清楚函数的正确调用关系,需理清三个概念:重写(override)、重载(overload)、... 阅读全文
posted @ 2014-05-05 21:28 F8Master 阅读(364) 评论(0) 推荐(0)
摘要:1、概述:模板(Template)是一种强大的C++软件复用特性,通常有两种形式:函数模板和类模板。函数模板针对仅参数类型不同的函数;类模板针对仅数据成员和成员函数类型不同的类。函数模板和类模板可以是程序员只需制定一个单独的代码段,就可表示一整套称为函数模板特化的相关(重载)函数或是表示一整套称为类... 阅读全文
posted @ 2014-05-05 20:39 F8Master 阅读(1127) 评论(0) 推荐(0)
摘要:在C++标准库(STL)中,实现了栈和队列,方便使用,并提供了若干方法。以下作简要介绍。1、栈(stack)说明及举例:使用栈,要先包含头文件 : #include定义栈,以如下形式实现: stack s; 其中Type为数据类型(如 int,float,char等)。栈的主要操作:s.push(i... 阅读全文
posted @ 2014-05-05 01:11 F8Master 阅读(342) 评论(0) 推荐(0)
摘要:对于Android开发而言,GenyMotion确实是非常好用的,单就速度这一点,就足够令我个人喜欢。在使用GenyMotion期间遇到若干问题,会依次整理在这篇文章中,随时更新。1、在GenyMotion模拟器无法输入文字怎么办?显然这是输入法设置方面的问题,设置主要针对输入法设置展开,如下图:S... 阅读全文
posted @ 2014-05-02 13:58 F8Master 阅读(1598) 评论(0) 推荐(0)