- 浏览: 583747 次
- 来自: ...
文章分类
最新评论
-
lgh1992314:
相同的元素呢
一种离散化方法 -
HelloSummerR:
圆心的位置是随机的,于是圆的部分会落到canvas外,那样就显 ...
HTML5 Canvas学习笔记(1)处理鼠标事件 -
hlstudio:
好久没见到sokuban了,这有个java版的,带源码,可以参 ...
求推箱子的最小步数(java) -
肖泽文:
太好了,谢谢你。。有中文注释!
HTML5 推箱子游戏过关演示动画 -
swm8023:
删除操作,将最后一个叶子节点插入后也有可能上浮吧
彻底弄懂最大堆的四种操作(图解+程序)(JAVA)
import java.util.Queue; import java.util.ArrayDeque; // 顶点类 class Vertex { public char label; public boolean wasVisited;//顶点是否被访问过的标志 public Vertex(char lab) { label = lab; wasVisited = false; } } //图的邻接矩阵表示实现 class Graph { private final int MAX_VERTS = 20; private Vertex vertexList[]; // 顶点数组 private int adjMat[][]; // 邻接矩阵 private int nVerts; // 当前的顶点数 private Queue<Integer> theQueue; public Graph() { vertexList = new Vertex[MAX_VERTS]; adjMat = new int[MAX_VERTS][MAX_VERTS]; nVerts = 0; for(int j=0; j<MAX_VERTS; j++) for(int k=0; k<MAX_VERTS; k++) adjMat[j][k] = 0; theQueue = new ArrayDeque<Integer>(); } //往图中加一个顶点 public void addVertex(char lab) { vertexList[nVerts++] = new Vertex(lab); } //往图中加一条边 public void addEdge(int start, int end) { adjMat[start][end] = 1; adjMat[end][start] = 1; } //显示顶点 public void displayVertex(int v) { System.out.print(vertexList[v].label); } // 广度优先搜索图 public void bfs() { vertexList[0].wasVisited = true; //从第一个顶点开始搜索,并标记 displayVertex(0); // display it theQueue.offer(0); // 进队列 int v2; while( !theQueue.isEmpty() ) { int v1 = theQueue.poll(); // 队列头元素出队列 // 直到它没有未被访问的邻接点 while( (v2=getAdjUnvisitedVertex(v1)) != -1 ) { vertexList[v2].wasVisited = true; // 标记已被访问过 displayVertex(v2); // display it theQueue.offer(v2); // 进队 } } for(int j=0; j<nVerts; j++) vertexList[j].wasVisited = false; } // 返回v的一个未被访问过的邻接顶点,如果v的所有邻接点都访问过,返回-1 public int getAdjUnvisitedVertex(int v) { for(int j=0; j<nVerts; j++) if(adjMat[v][j]==1 && vertexList[j].wasVisited==false) return j; return -1; } } public class BFSApp { public static void main(String[] args) { Graph theGraph = new Graph(); theGraph.addVertex('A'); // 0 (start for bfs) theGraph.addVertex('B'); // 1 theGraph.addVertex('C'); // 2 theGraph.addVertex('D'); // 3 theGraph.addVertex('E'); // 4 theGraph.addEdge(0, 1); // AB theGraph.addEdge(1, 2); // BC theGraph.addEdge(0, 3); // AD theGraph.addEdge(3, 4); // DE System.out.print("Visits: "); theGraph.bfs(); // breadth-first search System.out.println(); } }
运行结果:
Visits: ABDCE
下载源码:
发表评论
-
图的深搜+回溯练习题:POJ2197
2013-01-18 15:53 1525POJ 2197题意: 给定n个城市及其之间的距离,以及距 ... -
图的练习题(有解答)
2012-12-27 22:23 26111. 填空题 ⑴ 设无向图G ... -
邻接表实现图的广搜和深搜(java模板)
2012-12-11 17:04 2404//邻接表实现图的广搜和深搜(java模板) impor ... -
邻接矩阵实现图的广搜和深搜(java模板)
2012-12-10 20:37 1838经常要用到,放到这里备用!! //邻接矩阵实现图的广搜和深搜 ... -
如何求无向图的最小环
2012-11-13 19:02 2740POJ1734 题意:给定一个N个点的无向图,求一个最小环(各 ... -
深度优先搜索输出有向图中的所有环(JAVA)
2012-11-06 14:22 9549如图:求出有向图的所有环。 import java.uti ... -
三种算法(Floyd、Dijkstra、SPFA)求单源点最短路径。
2012-11-05 13:15 1777题(HDU2544): 在每年的校赛里,所有进入决赛 ... -
Dijkstra算法解HDU1874
2012-11-05 10:15 1300Dijkstra算法是用来解 ... -
SPFA算法求单源最短路径
2012-11-04 23:00 1864很多时候,给定的图存在负权边,这时类似Dijkstra等算法 ... -
图解Bellman-Ford算法
2012-11-03 19:39 5818Bellman-Ford算法: ... -
Bellman-Ford算法教学PPT
2012-11-03 12:06 1398Dijkstra算法是处理单源最短路径的有效算法,但它 ... -
昆虫的同性恋
2012-11-01 19:21 1352题目大意: 输入一个数t,表示测试组数。然后每组第一行两 ... -
拓扑排序入门练习
2012-11-01 16:51 1531拓扑排序简单来说 ... -
并查集入门精讲,实例2个(JAVA)
2012-10-30 14:47 3984一、什么是并查集 ... -
无前趋的顶点优先的拓扑排序方法(JAVA)
2012-10-28 20:20 1783无前趋的顶点优先的拓扑排序方法 该方法的每一步总是输 ... -
Kruskal算法和prim算法求最小生成树学习小结(JAVA)
2012-10-26 14:02 4963prim算法是用来实现图最小生成树的2种常用方法之一,P ... -
图的邻接表存储及遍历(JAVA)
2012-10-10 10:58 5354为图的每个顶点所发出的边建立一个单链表,用一顶点数组存储 ... -
弗洛伊德(Floyd)算法求任意两点间的最短路径
2012-10-01 07:46 6219Floyd-Warshall算法(Floyd-Warsha ... -
单源最短路径( Dijkstra算法)JAVA实现
2012-09-14 14:30 9033单源最短路径问题,即在图中求出给定顶点到其它任一顶 ... -
深度优先搜索与有向无环图的拓扑排序(java实现)
2012-09-11 13:05 5467当每个任务有前后置关系时,需要找到一种满足前后置关系的路 ...
相关推荐
基于java数据结构实验基于邻接矩阵和邻接表的深度广度优先遍历图.pdf
数据结构图的邻接矩阵,邻接表存储表示,图的深度优先搜索遍历,广度优先搜索遍历 数据结构图的邻接矩阵,邻接表存储表示,图的深度优先搜索遍历,广度优先搜索遍历.rar
1)实现图的邻接矩阵和邻接表存储结构; 2)完成基于邻接矩阵的深度优先搜索遍历及广度优先搜索遍历; 3)实现从键盘输入任意一对顶点,求出顶点间的最短路径。
图的邻接矩阵和邻接表存储形式,并实现深度优先遍历和广度优先遍历
数据结构 图 (邻接矩阵) java图形界面 实现 图的深度优先遍历算法 广度遍历算法 删除增加顶点等
在上述示例代码中,我们通过邻接矩阵表示图。graph是一个二维数组,其中graph[i][j]表示顶点i和j之间是否存在边。 算法的关键是使用队列来进行遍历。我们从指定的起始顶点开始,并将其入队,并将其标记为已访问。...
加权图(邻接表)遍历广度优先搜索深度优先搜索最短路径广度优先搜索最短路径(有向图) Dikstra的最短路径(加权图) 贝尔曼·福特的最短路径(加权图) 优化的Bellman Ford的最短路径(加权图)Java实作有向图...
对任意给定的图(顶点数不小于20,边数不少于30,图的类型可以是有向图、无向图、有向网、无向网),能够输入图的顶点和边(或弧)的信息,并存储到相应存储结构(邻接矩阵、邻接表、十字链表、邻接多重表,任选其中...
图的几种常用算法(广度/深度优先搜索,最小生成树,弗洛伊德,拓扑排序....邻接矩阵),java实现。 注释清晰,代码简单易懂。
用邻接矩阵来存储图,Floyed算法求任意两点间的最短路径并输出,广度优先遍历,深度优先遍历
【通过邻接矩阵有向图深度优先和广度优先】(src/main/java/cn/codepub/algorithms/graph/DirectedGraphByAdjacencyMatrix.java) 【无向图深度优先和广度优先的邻接表】(src/main/java/...
广度优先搜索(BFS) 深度优先搜索(DFS) 迭代深化搜索(IDS) 统一成本搜索(UCS)(Dijkstra算法) A *算法(A星) 我实现了上述算法,以找到任何给定图(状态空间图)的遍历路径和精确路径。 状态空间图可以...
用邻接矩阵存储方式或邻接表的存储方式创建图,接着求出所创建图中某一顶点的度,实现所创建图的深度优先和广度优先遍历,最后判断任一图是否连通。
1.2 图的输入(邻接表,邻接矩阵) 1.3 图的可视化(优先级较低的工作) 主体:czzNode2Vec,图的节点产生遍历序列,为转化为向量表示做准备 2.1 The Alias Method: Efficient Sampling with Many Discrete Outcomes...
2)BFS:该程序包对无向图和无权图具有广度优先搜索算法的实现。 广度优先搜索(BFS)是一种用于遍历或搜索树或图数据结构的算法。 它从树的根(或图的某个任意节点,有时称为“搜索关键字” [1])开始,并探索当前...
算法上 用几种不同语言编写的几种算法,使用 unix time() 和 D3 JS poop 进行图形化和描述...邻接矩阵 发生率矩阵 ###语言 Julia 去 Python 哈斯克尔 C 锈 Javascript Java7 ##Disclaimer 此列表几乎是逐字逐句来自
图算法BFS邻接矩阵拓扑排序树算法有序遍历预定遍历广度优先遍历深度优先遍历在BST中搜索BST中节点的后继者在BST中插入节点删除BST中的节点选择排序插入排序合并排序堆排序计算数组中的反转MaxSubarray问题数组中的...
图形 图表示和遍历 这个简单的代码使用邻接矩阵提供了图形表示的实现 两种图遍历算法说 BFS(广度优先搜索)和 DFS(深度优先搜索)。 请随意重复使用。 欢迎提出意见和建议。
邻接矩阵 邻接表 遍历 深度优先搜索 广度优先搜索 哈希表 哈希函数 直接定址法 数字分析法 平方取中法 折叠法 除留余数法 随机数法 处理哈希冲突 开放定址法 再哈...