这次整理了一下广度优先搜索的框架,以后可以拿来直接用了。TjuOj1140是一个三维的迷宫题,在BFS时我增加了一个控制数组,用来对队列的出队进行控制,确保每次出队的结点均为同一步长的结点,个人认为比较适合这种迷宫搜索题。 BFS部分的代码如下: 题目比较好理解,从S出发找E(但不一定有解),原文如 ...
分类:
其他好文 时间:
2018-11-24 21:09:55
阅读次数:
259
一. 二叉树基本概念 在计算机科学中,二叉树是每个结点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用于实现二叉查找树和二叉堆。二叉树是每个结点最多有两个子树的树结构。它有五种基本形态:二叉树可以是空集;根可以有空的 ...
分类:
其他好文 时间:
2018-11-22 00:20:57
阅读次数:
232
算法一:快速排序算法 算法二:堆排序算法 算法三:归并排序 算法四:二分查找算法 算法五:BFPRT(线性查找算法) 算法六:DFS(深度优先搜索) 算法七:BFS(广度优先搜索) 算法八:Dijkstra算法 算法九:动态规划算法 算法十:朴素贝叶斯分类算法 算法一:快速排序算法 快速排序是由东尼 ...
分类:
编程语言 时间:
2018-11-22 00:16:30
阅读次数:
171
20172303 2018 2019 1《程序设计与数据结构》第9周学习总结 教材学习内容总结 常见的非线性结构有两种——树和图,在经过了三周对树的学习之后,本周我们接触了另一种非线性结构图的相关内容,包括图的概念、图的分类、图的实现方法等。 一、图的概述 概念:树中的每个结点都只有一个父结点,如果 ...
分类:
其他好文 时间:
2018-11-18 23:05:51
阅读次数:
158
1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 #define MVNum 100 7 int vis[MVNum]; 8 typedef struct ArcNode 9 { 10 int adjvex; 1... ...
分类:
其他好文 时间:
2018-11-16 19:13:45
阅读次数:
228
做OJ需要用到搜索最短路径的题,于是整理了一下关于图的搜索算法: 图的搜索大致有三种比较常用的算法: 迪杰斯特拉算法(Dijkstra算法) 弗洛伊德算法(Floyd算法) SPFA算法 Dijkstra算法使用了广度优先搜索解决赋权有向图或者无向图的单源最短路径问题,算法最终得到一个最短路径树。 ...
分类:
编程语言 时间:
2018-11-15 18:27:24
阅读次数:
229
1、二叉树的遍历 遍历:迭代所有元素一遍。 树的遍历:对树中所有的元素不重复的访问一遍,也成扫描 广度优先遍历:层序遍历 深度优先遍历:前序、中序、后续遍历。 遍历序列:将树中所有元素遍历一遍后,得到的元素序列。将层次结构转换成了线性结构。 2、层序遍历 按照数的层次,从第一层开始,自左向右遍历元素 ...
分类:
编程语言 时间:
2018-11-13 00:18:50
阅读次数:
302
图分为无向图和有向图 图的存储结构有邻接矩阵、邻接表、十字链表、邻接多重表这四种,最常用的是前两种 本篇主要是利用邻接矩阵实现无向图的创建和遍历(深度优先、广度优先),深度优先其实就是二叉树里的前序遍历 利用邻接矩阵(边数组)创建图 深度优先遍历 广度优先遍历 运行: console.log('** ...
分类:
Web程序 时间:
2018-11-08 22:02:20
阅读次数:
277
首先,我将说说什么是图(它们不涉及X轴和Y轴),在我所知道的算法中,图算法应该是最有用的。再介绍第一种图算法——广度优先搜索(breadth-first search,BFS)。 广度优先搜索让你能够找出两样东西之间的最短距离,不过最短距离的含义有很多!使用广度优先搜索可以: 编写国际跳棋AI,计算 ...
分类:
其他好文 时间:
2018-11-06 13:30:16
阅读次数:
203