Location:
Search - BFS matrix
Search list
Description: [输入]
图的顶点个数N,图中顶点之间的关系及起点A和终点B
[输出]
若A到B无路径,则输出“There is no path” 否则输出A到B路径上个顶点
[存储结构]
图采用邻接矩阵的方式存储。
[算法的基本思想]
采用广度优先搜索的方法,从顶点A开始,依次访问与A邻接的顶点VA1,VA2,...,VAK, 访问遍之后,若没有访问B,则继续访问与VA1邻接的顶点VA11,VA12,...,VA1M,再访问与VA2邻接顶点...,如此下去,直至找到B,最先到达B点的路径,一定是边数最少的路径。实现时采用队列记录被访问过的顶点。每次访问与队头顶点相邻接的顶点,然后将队头顶点从队列中删去。若队空,则说明到不存在通路。在访问顶点过程中,每次把当前顶点的序号作为与其邻接的未访问的顶点的前驱顶点记录下来,以便输出时回溯。
#include<stdio.h>
int number //队列类型
typedef struct{
int q[20]
-[imported] map of the number of vertices N, Vertex map of the relationship between the starting point and end point A and B [output] if A to B without path then exporting "There is no path" Otherwise output A to B on the path vertices [storage structure] plan adopted adjacency matrix of storage. [Algorithm for the basic idea] BFS way from the vertex A, A visit followed with adjacent vertices VA1, VA2 ,..., VAK, visiting times, if not visit B, continue to visit with the VA1 adjacent vertices VA11, VA12 ,..., VA1M. VA2 and then visit the adjacent vertices ... and so on until finding B, the first to reach point B path, must be at least a few side paths. Queue used to achieve record was visited by the vertex. Each visit with the team atop the points are adjacent to the vertex, then t
Platform: |
Size: 9954 |
Author: Demonic |
Hits:
Description: 目 录
译者序
前言
第一部分 预备知识
第1章 C++程序设计 1
1.1 引言 1
1.2 函数与参数 2
1.2.1 传值参数 2
1.2.2 模板函数 3
1.2.3 引用参数 3
1.2.4 常量引用参数 4
1.2.5 返回值 4
1.2.6 递归函数 5
1.3 动态存储分配 9
1.3.1 操作符new 9
1.3.2 一维数组 9
1.3.3 异常处理 10
1.3.4 操作符delete 10
1.3.5 二维数组 10
1.4 类 13
1.4.1 类Currency 13
1.4.2 使用不同的描述方法 18
1.4.3 操作符重载 20
1.4.4 引发异常 22
1.4.5 友元和保护类成员 23
1.4.6 增加#ifndef, #define和#endif语句 24
1.5 测试与调试 24
1.5.1 什么是测试 24
1.5.2 设计测试数据 26
1.5.3 调试 28
1.6 参考及推荐读物 29
第2章 程序性能 30
2.1 引言 30
2.2 空间复杂性 31
2.2.1 空间复杂性的组成 31
2.2.2 举例 35
2.3 时间复杂性 37
2.3.1 时间复杂性的组成 37
2.3.2 操作计数 37
2.3.3 执行步数 44
2.4 渐进符号(O、 健?、 o) 55
2.4.1 大写O符号 56
2.4.2 椒??58
2.4.3 符号 59
2.4.4 小写o符号 60
2.4.5 特性 60
2.4.6 复杂性分析举例 61
2.5 实际复杂性 66
2.6 性能测量 68
2.6.1 选择实例的大小 69
2.6.2 设计测试数据 69
2.6.3 进行实验 69
2.7 参考及推荐读物 74
第二部分 数据结构
第3章 数据描述 75
3.1 引言 75
3.2 线性表 76
3.3 公式化描述 77
3.3.1 基本概念 77
3.3.2 异常类NoMem 79
3.3.3 操作 79
3.3.4 评价 83
3.4 链表描述 86
3.4.1 类ChainNode 和Chain 86
3.4.2 操作 88
3.4.3 扩充类Chain 91
3.4.4 链表遍历器类 92
3.4.5 循环链表 93
3.4.6 与公式化描述方法的比较 94
3.4.7 双向链表 95
3.4.8 小结 96
3.5 间接寻址 99
3.5.1 基本概念 99
3.5.2 操作 100
3.6 模拟指针 102
3.6.1 SimSpace的操作 103
3.6.2 采用模拟指针的链表 106
3.7 描述方法的比较 110
3.8 应用 111
3.8.1 箱子排序 111
3.8.2 基数排序 116
3.8.3 等价类 117
3.8.4 凸包 122
3.9 参考及推荐读物 127
第4章 数组和矩阵 128
4.1 数组 128
4.1.1 抽象数据类型 128
4.1.2 C++数组 129
4.1.3 行主映射和列主映射 129
4.1.4 类Array1D 131
4.1.5 类Array2D 133
4.2 矩阵 137
4.2.1 定义和操作 137
4.2.2 类Matrix 138
4.3 特殊矩阵 141
4.3.1 定义和应用 141
4.3.2 对角矩阵 143
4.3.3 三对角矩阵 144
4.3.4 三角矩阵 145
4.3.5 对称矩阵 146
4.4 稀疏矩阵 149
4.4.1 基本概念 149
4.4.2 数组描述 149
4.4.3 链表描述 154
第5章 堆栈 161
5.1 抽象数据类型 161
5.2 派生类和继承 162
5.3 公式化描述 163
5.3.1 Stack的效率 164
5.3.2 自定义Stack 164
5.4 链表描述 166
5.5 应用 169
5.5.1 括号匹配 169
5.5.2 汉诺塔 170
5.5.3 火车车厢重排 172
5.5.4 开关盒布线 176
5.5.5 离线等价类问题 178
5.5.6 迷宫老鼠 180
5.6 参考及推荐读物 188
第6章 队列 189
6.1 抽象数据类型 189
6.2 公式化描述 190
6.3 链表描述 194
6.4 应用 197
6.4.1 火车车厢重排 197
6.4.2 电路布线 201
6.4.3 识别图元 204
6.4.4 工厂仿真 206
6.5 参考及推荐读物 217
第7章 跳表和散列 218
7.1 字典 218
7.2 线性表描述 219
7.3 跳表描述 222
7.3.1 理想情况 222
7.3.2 插入和删除 223
7.3.3 级的分配 224
7.3.4 类SkipNode 224
7.3.5 类SkipList 225
7.3.6 复杂性 229
7.4 散列表描述 229
7.4.1 理想散列 229
7.4.2 线性开型寻址散列 230
7.4.3 链表散列 234
7.5 应用——文本压缩 238
7.5.1 LZW压缩 239
7.5.2 LZW压缩的实现 239
7.5.3 LZW解压缩 243
7.5.4 LZW解压缩的实现 243
7.6 参考及推荐读物 247
第8章 二叉树和其他树 248
8.1 树 248
8.2 二叉树 251
8.3 二叉树的特性 252
8.4 二叉树描述 253
8.4.1 公式化描述 253
8.4.2 链表描述 254
8.5 二叉树常用操作 256
8.6 二叉树遍历 256
8.7 抽象数据类型BinaryTree 259
8.8 类BinaryTree 260
8.9 抽象数据类型及类的扩充 263
8.9.1 输出 263
8.9.2 删除 264
8.9.3 计算高度 264
8.9.4 统计节点数 265
8.10 应用 265
8.10.1 设置信号放大器 265
8.10.2 在线等价类 268
8.11 参考及推荐读物 275
第9章 优先队列 276
9.1 引言 276
9.2 线性表 277
9.3 堆 278
9.3.1 定义 278
9.3.2 最大堆的插入 279
9.3.3 最大堆的删除 279
9.3.4 最大堆的初始化 280
9.3.5 类MaxHeap 281
9.4 左高树 285
9.4.1 高度与宽度优先的最大及最小
左高树 285
9.4.2 最大HBLT的插入 287
9.4.3 最大HBLT的删除 287
9.4.4 合并两棵最大HBLT 287
9.4.5 初始化最大HBLT 289
9.4.6 类MaxHBLT 289
9.5 应用 293
9.5.1 堆排序 293
9.5.2 机器调度 294
9.5.3 霍夫曼编码 297
9.6 参考及推荐读物 302
第10章 竞??303
10.1 引言 303
10.2 抽象数据类型WinnerTree 306
10.3 类WinnerTree 307
10.3.1 定义 307
10.3.2 类定义 307
10.3.3 构造函数、析构函数及Winner
函数 308
10.3.4 初始化赢者树 308
10.3.5 重新组织比赛 310
10.4 输者树 311
10.5 应用 312
10.5.1 用最先匹配法求解箱子装载
问题 312
10.5.2 用相邻匹配法求解箱子装载
问题 316
第11章 搜索树 319
11.1 二叉搜索树 320
11.1.1 基本概念 320
11.1.2 抽象数据类型BSTree和
IndexedBSTree 321
11.1.3 类BSTree 322
11.1.4 搜索 322
11.1.5 插入 323
11.1.6 删除 324
11.1.7 类DBSTree 326
11.1.8 二叉搜索树的高度 327
11.2 AVL树 328
11.2.1 基本概念 328
11.2.2 AVL树的高度 328
11.2.3 AVL树的描述 329
11.2.4 AVL搜索树的搜索 329
11.2.5 AVL搜索树的插入 329
11.2.6 AVL搜索树的删除 332
11.3 红-黑树 334
11.3.1 基本概念 334
11.3.2 红-黑树的描述 336
11.3.3 红-黑树的搜索 336
11.3.4 红-黑树的插入 336
11.3.5 红-黑树的删除 339
11.3.6 实现细节的考虑及复杂性分析 343
11.4 B-树 344
11.4.1 索引顺序访问方法 344
11.4.2 m 叉搜索树 345
11.4.3 m 序B-树 346
11.4.4 B-树的高度 347
11.4.5 B-树的搜索 348
11.4.6 B-树的插入 348
11.4.7 B-树的删除 350
11.4.8 节点结构 353
11.5 应用 354
11.5.1 直方图 354
11.5.2 用最优匹配法求解箱子装载
问题 357
11.5.3 交叉分布 359
11.6 参考及推荐读物 363
第12章 图 365
12.1 基本概念 365
12.2 应用 366
12.3 特性 368
12.4 抽象数据类型Graph和Digraph 370
12.5 无向图和有向图的描述 371
12.5.1 邻接矩阵 371
12.5.2 邻接压缩表 373
12.5.3 邻接链表 374
12.6 网络描述 375
12.7 类定义 376
12.7.1 不同的类 376
12.7.2 邻接矩阵类 377
12.7.3 扩充Chain类 380
12.7.4 类LinkedBase 381
12.7.5 链接类 382
12.8 图的遍历 386
12.8.1 基本概念 386
12.8.2 邻接矩阵的遍历函数 387
12.8.3 邻接链表的遍历函数 388
12.9 语言特性 389
12.9.1 虚函数和多态性 389
12.9.2 纯虚函数和抽象类 391
12.9.3 虚基类 391
12.9.4 抽象类和抽象数据类型 393
12.10 图的搜索算法 394
12.10.1 宽度优先搜索 394
12.10.2 类Network 395
12.10.3 BFS的实现 395
12.10.4 BFS的复杂性分析 396
12.10.5 深度优先搜索 397
12.11 应用 399
12.11.1 寻找路径 399
12.11.2 连通图及其构件 400
12.11.3 生成树 402
第三部分 算法设计方法
第13章 贪婪算法 405
13.1 最优化问题 405
13.2 算法思想 406
13.3 应用 409
13.3.1 货箱装船 409
13.3.2 0/1背包问题 410
13.3.3 拓扑排序 412
13.3.4 二分覆盖 415
13.3.5 单源最短路径 421
13.3.6 最小耗费生成树 424
13.4 参考及推荐读物 433
第14章 分而治之算法 434
14.1 算法思想 434
14.2 应用 440
14.2.1 残缺棋盘 440
14.2.2 归并排序 443
14.2.3 快速排序 447
14.2.4 选择 452
14.2.5 距离最近的点对 454
14.3 解递归方程 462
14.4 复杂性的下限 463
14.4.1 最小最大问题的下限 464
14.4.2 排序算法的下限 465
第15章 动态规划 467
15.1 算法思想 467
15.2 应用 469
15.2.1 0/1背包问题 469
15.2.2 图像压缩 471
15.2.3 矩阵乘法链 476
15.2.4 最短路径 480
15.2.5 网络的无交叉子集 483
15.2.6 元件折叠 486
15.3 参考及推荐读物 491
第16章 回溯 492
16.1 算法思想 492
16.2 应用 496
16.2.1 货箱装船 496
16.2.2 0/1背包问题 503
16.2.3 最大完备子图 506
16.2.4 旅行商问题 508
16.2.5 电路板排列 510
第17章 分枝定界 516
17.1 算法思想 516
17.2 应用 519
17.2.1 货箱装船 519
17.2.2 0/1背包问题 526
17.2.3 最大完备子图 528
17.2.4 旅行商问题 529
17.2.5 电路板排列 532
Platform: |
Size: 5125525 |
Author: gufeng20081010 |
Hits:
Description: [输入]
图的顶点个数N,图中顶点之间的关系及起点A和终点B
[输出]
若A到B无路径,则输出“There is no path” 否则输出A到B路径上个顶点
[存储结构]
图采用邻接矩阵的方式存储。
[算法的基本思想]
采用广度优先搜索的方法,从顶点A开始,依次访问与A邻接的顶点VA1,VA2,...,VAK, 访问遍之后,若没有访问B,则继续访问与VA1邻接的顶点VA11,VA12,...,VA1M,再访问与VA2邻接顶点...,如此下去,直至找到B,最先到达B点的路径,一定是边数最少的路径。实现时采用队列记录被访问过的顶点。每次访问与队头顶点相邻接的顶点,然后将队头顶点从队列中删去。若队空,则说明到不存在通路。在访问顶点过程中,每次把当前顶点的序号作为与其邻接的未访问的顶点的前驱顶点记录下来,以便输出时回溯。
#include<stdio.h>
int number //队列类型
typedef struct{
int q[20]
-[imported] map of the number of vertices N, Vertex map of the relationship between the starting point and end point A and B [output] if A to B without path then exporting "There is no path" Otherwise output A to B on the path vertices [storage structure] plan adopted adjacency matrix of storage. [Algorithm for the basic idea] BFS way from the vertex A, A visit followed with adjacent vertices VA1, VA2 ,..., VAK, visiting times, if not visit B, continue to visit with the VA1 adjacent vertices VA11, VA12 ,..., VA1M. VA2 and then visit the adjacent vertices ... and so on until finding B, the first to reach point B path, must be at least a few side paths. Queue used to achieve record was visited by the vertex. Each visit with the team atop the points are adjacent to the vertex, then t
Platform: |
Size: 10240 |
Author: Demonic |
Hits:
Description: (1)自选存储结构,输入含n个顶点(用字符表示顶点名称)和e条边的图G;
(2)指定任意顶点x为初始顶点,对图G作DFS遍历,输出DFS(深度优先)顶点序列(提示:使用栈实现DFS);
(3)指定任意顶点x为初始顶点,对图G作BFS(广度遍历),输出BFS顶点序列(提示:使用队列实现BFS);
(5)输入顶点x,查找图G:若存在含x的顶点,则删除该结点及与之相关连的边,并作DFS遍历(执行操作3);否则输出信息“不存在x”;
(6)判断图G是否是连通图,输出信息“YES”/“NO”;
(7)如果选用的存储结构是邻接矩阵,则用邻接矩阵的信息生成图G的邻接表-(1) on-demand storage structure, input containing n vertices (with characters in the name of that vertex) and e edges of the graph G
(2) specify arbitrary vertex x as the initial vertex of the graph G for the DFS traversal, output DFS (depth-first) vertex sequence (Hint: Use the stack to achieve DFS)
(3) specify arbitrary vertex x as the initial vertex of the graph G for the BFS (breadth traversal), the output sequence of BFS vertex (hint: the realization of the use of queue BFS)
(5) input vertex x, find graph G: If there is a vertex with x, then the deletion of the nodes and edges associated with them, and DFS traversal (3 steps) Otherwise output "does not exist x"
(6) to determine whether graph G is a connected graph, output "YES"/"NO"
(7) If I choose the storage structure is the adjacency matrix, the adjacency matrix of the information used to generate the adjacency list graph G
Platform: |
Size: 3072 |
Author: 涂舒 |
Hits:
Description: MatToList(MGraph g,ALGraph *&G):将邻接矩阵g转换成邻接表G。
ListToMat(ALGraph *G,MGraph &g):将邻接表G转换成邻接矩阵g。
DispMat(MGraph g):输出邻接矩阵g。
DispAdj(ALGraph *G):输出邻接表G。
DFS(ALGraph *G,int v):以递归的方法从顶点v深度优先遍历图G。
DFS1(ALGraph *G,int v):以非递归的方法从顶点v深度优先遍历图G。
BFS(ALGraph *G,int v):从顶点v广度优先遍历图G。
- MatToList (MGraph g, ALGraph* & G): the adjacency matrix adjacency list g into G. ListToMat (ALGraph* G, MGraph & g): the adjacent table adjacency matrix G into g. DispMat (MGraph g): output adjacency matrix g. DispAdj (ALGraph* G): output adjacency list G. DFS (ALGraph* G, int v): to the method of recursive vertex v from the depth-first traversal graph G. DFS1 (ALGraph* G, int v): non-recursive method to vertex v from the depth-first traversal graph G. BFS (ALGraph* G, int v): vertex v from the breadth-first traversal graph G.
Platform: |
Size: 3072 |
Author: 小鬼 |
Hits:
Description: 包括了图的大部分基本算法,每一种算法都以邻接矩阵与邻接表两种形式给出,算法包括建图,图的遍历(如DFS和BFS),最小生成树,从某个源点到蓁各顶点的最短路径等-Includes most of the basic graph algorithms, each algorithm is to adjacency matrix and adjacency list is given in two forms, algorithms, including the construction of map, graph traversal (such as DFS and BFS), the minimum spanning tree, from a source point Zhen each vertex to the shortest path, etc.
Platform: |
Size: 244736 |
Author: seckCoder |
Hits:
Description: 用邻接矩阵法建一无向连通图(顶点信息为字符),分别用dfs(深度优先搜索)和bfs(广度优先搜索)遍历,输出图中顶点信息并验证。-Adjacency matrix to build an undirected connected graph (vertex information for characters), respectively dfs (depth-first search), and bfs (breadth-first search) traversal, the output graph vertex information and verification.
Platform: |
Size: 4096 |
Author: fanfausun |
Hits:
Description: 7、 图论—连通性 56
7.1 无向图关键点(dfs邻接阵) 56
7.2 无向图关键边(dfs邻接阵) 57
7.3 无向图的块(bfs邻接阵) 58
7.4 无向图连通分支(dfs/bfs邻接阵) 59
7.5 有向图强连通分支(dfs/bfs邻接阵)60
7.6 有向图最小点基(邻接阵) 61-7, graph theory- Connectivity 56 7.1 free key points to the map (dfs adjacency matrix) 56 7.2 Key undirected graph edge (dfs adjacency matrix) 57 7.3 undirected graph of the block (bfs adjacency matrix) 58 7.4 The connected components of undirected graph (dfs/bfs adjacency matrix) 59 7.5 has to strengthen the country connected components (dfs/bfs adjacency matrix) 60 7.6 Minimum of directed graph-based (adjacency matrix) 61
Platform: |
Size: 446464 |
Author: 孔明 |
Hits:
Description: 设计一个有向图,建立图的邻接矩阵或邻接表的存储结构,完成有向图的DFS(深度优先遍历)和BFS(广度优先遍历)的操作-Design of a directed graph, the establishment of the adjacency matrix or adjacency list of the storage structure, complete directed graph DFS (depth-first traversal) and BFS (breadth-first traversal) operation
Platform: |
Size: 5120 |
Author: tang |
Hits:
Description: 对以邻接矩阵为存储结构的图进行 DFS和 BFS遍历.
-Adjacency matrix of the storage structure of the graph for the DFS and BFS traversals.
Platform: |
Size: 25600 |
Author: duliu |
Hits:
Description: 本源码实现了图的基本操作。BFS,DFS,邻接矩阵,邻接链表,矩阵变换,拓扑排序等。-This code is about Basic opereation of Graph.Such as BFS,DFS,adjacent-matrix/list matrixing and topical sort etc.
Platform: |
Size: 2048 |
Author: 人类 |
Hits:
Description: C语言,采用邻接矩阵存储,实现图的BFS、DFS遍历,源代码-C language, using the adjacency matrix storage Figure BFS and DFS traversal, and source code
Platform: |
Size: 1024 |
Author: Leo |
Hits:
Description: 1) 先任意创建一个图;
2) 图的DFS,BFS的递归和非递归算法的实现
3) 最小生成树(两个算法)的实现,求连通分量的实现
4) 要求用邻接矩阵、邻接表、十字链表多种结构存储实现-A) any first create a graph 2) DFS, BFS recursive and non recursive algorithm 3) The minimum spanning tree (algorithm) to achieve, find the connected components to achieve 4) request with adjacency matrix, adjacency list cross-linked lists a variety of structural storage implementation
Platform: |
Size: 4096 |
Author: liliaaa |
Hits:
Description: 共轭梯度法计算线性方程组的代码。本段代码采用了F90的风格书写。注意共轭梯度法只适用于对称正定的矩阵。-Conjugate gradient method to calculate the linear equations of the code. The section of code uses the the F90 style of writing. Note conjugate gradient method is only applicable to symmetric positive definite matrix.
Platform: |
Size: 2048 |
Author: 胡义勇 |
Hits:
Description: 用邻接矩阵表示的图的类型 DFS:深度优先遍历的递归算法BFS:广度优先遍历判断从顶点vi到顶点vj是否可达-Adjacency matrix type DFS: depth-first traversal of the recursive algorithm BFS: breadth-first traversal of the judgment from the vertex vi to vertex vj is reachable
Platform: |
Size: 2048 |
Author: 赫想 |
Hits:
Description: 输出图对应的邻接矩阵以及DFS和BFS结果-The output diagram corresponds to the adjacency matrix as well as the DFS and BFS results
Platform: |
Size: 192512 |
Author: 李磊 |
Hits:
Description: 用邻接矩阵实现图的基本操作:创建,销毁,增删修改顶点,增删弧或边,DFS,BFS等-Graph with adjacency matrix to achieve basic operations: create, destroy, modify vertex deletions, additions and deletions arcs or edges, DFS, BFS, etc.
Platform: |
Size: 467968 |
Author: 张三 |
Hits:
Description: 图的深度优先与广度优先遍历
利用邻接矩阵或邻接表作为存储结构建立一个无向图,每个顶点中存放一种水果名(例如apple、orange、banana等,并要求从键盘输入),顶点数不少于5个。要求分别以深度优先搜索(DFS)和广度优先搜索(BFS)进行遍历,输出遍历结果。
-Depth-first and breadth-first traversal
Adjacency matrix or adjacency list use as a storage structure to build an undirected graph, each vertex is stored in a fruit name (such as apple, orange, banana, etc., and require input from the keyboard), no less than five vertices. Were asked to depth-first search (DFS) and breadth-first search (BFS) traversal, output through the results.
Platform: |
Size: 46080 |
Author: 路东方 |
Hits:
Description: Breadth-first search (BFS) using adjacency matrix
Platform: |
Size: 1024 |
Author: kim |
Hits:
Description: (1)使用邻接矩阵表示图,定义相应的抽象数据类型。
(2)实现两个图ADTs的上述函数。
(3)从空图开始,生成图形对象表示图1所示的图形,将顶点和边逐一插入。
(4)以BFS方式遍历图。((1) Use adjacency matrix to represent graphs and define the corresponding abstract data type.
(2) Realize all the above functions for the two graph ADTs.
(3) Starting from an empty graph, generate a graph object represent the graph shown in Fig. 1 by inserting the vertices and edges one by one.
(4) Traverse the graph in BFS manner.)
Platform: |
Size: 13312 |
Author: mia_shao |
Hits: