scala
文章平均质量分 73
游九河
每日需更进一步
展开
-
scala知识点 二
一、 类和变量的访问权限 private[package_name]1) T1.scalapackage com.ds.testprivate[test] class T1{ def a1(): Unit ={ println("-----this is test 中 a1 method -------------------") }}private[test] obj...原创 2019-10-23 17:44:53 · 163 阅读 · 0 评论 -
数据结构 -- 图的广度优先遍历解决最短路径
最短路径用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。广度优先遍历算法能得出最短路径的最优解,但由于它遍历计算的节点很多,所以效率低。scala 实现下面的代码:1 创建一个队列,遍历的起始点放入队列,新建一个 boolean 数组、新建距离数组,父亲顶点数组2 从队列中取出一个元素,收集它,将其标记为已访问,将父亲顶点和距离存到数...原创 2019-10-17 21:12:14 · 2167 阅读 · 0 评论 -
数据结构 -- 图的广度优先遍历(BFS)
图的广度优先遍历(BFS)bfs总是先访问完同一层的结点,然后才继续访问下一层结点,如下图 从0 ->(1、2)-> (3、4、6) -> (5) 一层一层向距离起始点更远的顶点遍历。它最有用的性质是可以遍历一次就生成中心结点到所遍历结点的最短路径,这一点在求无权图的最短路径时非常有用。scala 实现下面的代码:1 创建一个队列,遍历的起始点放入队列2 从队列中...原创 2019-10-17 19:31:30 · 760 阅读 · 0 评论 -
数据结构 -- 图中二分图检测
二分图二分图又称作二部图,是图论中的一种特殊模型。 设G=(V,E)是一个无向图,如果顶点V可分割为两个互不相交的子集(A,B),并且图中的每条边(i,j)所关联的两个顶点i和j分别属于这两个不同的顶点集(i in A,j in B),则称图G为一个二分图。图1和图3属于二分区,图2不属于二分图。二分图检测染色法如上图,对图中顶点染色,从其中一个顶点开始染为红色,相邻顶点染为黑色,依次...原创 2019-10-16 20:54:15 · 412 阅读 · 0 评论 -
数据结构 -- 图中两点间的路径
无向图中的路径路径:在图中,两点间边构成的序列,比如图中0到6中一条路径0 -> 1 -> 3 -> 2 -> 6。一般图中两点之间的路径不止一条。这里的路径只要找到一条就返回。scala 实现import scala.collection.mutable.ArrayBufferclass Path { private var G: Graph = _ ...原创 2019-10-16 18:50:23 · 1703 阅读 · 0 评论 -
数据结构 -- 无向图 环检测
环的定义在无向图中出现回路,环不包含自环和平行边图中环检测 scala 实现CycleDetection.scalaimport util.control.Breaks.{break, _}class CycleDetection { var G: Graph = _ var visited: Array[Boolean] = _ var hasCycle = fal...原创 2019-10-14 20:59:22 · 858 阅读 · 0 评论 -
数据结构 -- 图的联通分量(scala版)
连通分量无向图G的极大连通子图称为G的连通分量( Connected Component)。任何连通图的连通分量只有一个,即是其自身,非连通的无向图有多个连通分量。如下,图中有两个连通分量。图算法中功能1).获得图中连通分量的个数2).判断两个顶点是否连通3).获取每个连通分量及其中的顶点集合scala实现import scala.collection.mutable.Arra...原创 2019-09-30 17:43:05 · 658 阅读 · 0 评论 -
数据结构 -- 图的深度优先遍历(scala版)
图的深度优先遍历图的深度优先遍历是图算法中基础算法,一些高级的算法都是这个算法的变种深度优先遍历的主要思想:首先以一个未被访问过的顶点作为起始点v,依次从未访问的邻接点出发对图进行遍历,直到图中和v相连的顶点都被访问到,若图中有未被访问的则从一个未被访问的顶点出发重新进行遍历。scala实现图的深度优先遍历import scala.collection.mutable.ArrayBuff...原创 2019-09-29 17:05:02 · 490 阅读 · 0 评论 -
数据结构 -- 图的基本表示:邻接表(scala版)
图图是一种复杂的非线性结构。图G由两个集合V(顶点Vertex)和E(边Edge)组成,定义为G=(V,E)底层存储结构存储结构有两种方式:链表存储:如上图二叉树存储:hash表、红黑树实现,hash表查询效率比红黑树略高,但需要更大的空间scala 实现import java.io.Fileimport java.util.Scannerimport scala.col...原创 2019-09-29 11:56:47 · 376 阅读 · 0 评论 -
scala知识点
1. val 和 var 区别val a = 1 不可变var b = 1 b =2 可变2. 基础数值类型的顶层接口AnyAnyValIntDoubleFloatLong…3. 函数可变长度参数 * def main(args: Array[String]): Unit = { mut("a") mut("a", "b") mut("a", ...原创 2019-09-06 01:17:57 · 326 阅读 · 2 评论 -
数据结构 -- 图的基本表示:邻接矩阵 (scala版)
图图是一种复杂的非线性结构。图G由两个集合V(顶点Vertex)和E(边Edge)组成,定义为G=(V,E)表示图有两种主要用于表示图的方式:邻接表邻接矩阵scala邻接矩阵实现图import java.io.Fileimport java.util.Scannerclass AdjMatrix { var V = 0 // 节点 var E = 0 // 边...原创 2019-09-26 17:14:04 · 315 阅读 · 0 评论 -
数据结构 -- 队列 (scala版)
队列队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。原创 2019-09-26 14:21:27 · 231 阅读 · 0 评论