From 10e4ebc88a2a039c647711e7143bb861f91133ec Mon Sep 17 00:00:00 2001 From: "haiji.yang" Date: Tue, 5 Jan 2021 17:41:26 +0800 Subject: [PATCH] add Graph :new: :book: --- note/README.md | 4 +- note/datastructureAlgorithm/README.md | 4 +- .../book/datastructure/Graph.md | 406 ++++++++++++++++++ .../book/datastructure/img/graph/graph01.jpg | Bin 0 -> 41090 bytes .../book/datastructure/img/graph/graph02.jpg | Bin 0 -> 23350 bytes .../book/datastructure/img/graph/graph03.jpg | Bin 0 -> 25077 bytes .../book/datastructure/img/graph/graph04.jpg | Bin 0 -> 17145 bytes .../book/datastructure/img/graph/graph05.jpg | Bin 0 -> 40933 bytes .../book/datastructure/img/graph/graph06.jpg | Bin 0 -> 23078 bytes .../book/datastructure/img/graph/graph07.jpg | Bin 0 -> 20083 bytes .../book/datastructure/img/graph/graph08.jpg | Bin 0 -> 20442 bytes .../advanced/datastructure/graph/Graph.java | 207 +++++++++ 12 files changed, 617 insertions(+), 4 deletions(-) create mode 100644 note/datastructureAlgorithm/book/datastructure/Graph.md create mode 100644 note/datastructureAlgorithm/book/datastructure/img/graph/graph01.jpg create mode 100644 note/datastructureAlgorithm/book/datastructure/img/graph/graph02.jpg create mode 100644 note/datastructureAlgorithm/book/datastructure/img/graph/graph03.jpg create mode 100644 note/datastructureAlgorithm/book/datastructure/img/graph/graph04.jpg create mode 100644 note/datastructureAlgorithm/book/datastructure/img/graph/graph05.jpg create mode 100644 note/datastructureAlgorithm/book/datastructure/img/graph/graph06.jpg create mode 100644 note/datastructureAlgorithm/book/datastructure/img/graph/graph07.jpg create mode 100644 note/datastructureAlgorithm/book/datastructure/img/graph/graph08.jpg create mode 100644 source-code/src/main/java/com/javayh/advanced/datastructure/graph/Graph.java diff --git a/note/README.md b/note/README.md index 04fe585..4753f29 100644 --- a/note/README.md +++ b/note/README.md @@ -40,6 +40,7 @@ - [🔖 树](datastructureAlgorithm/book/datastructure/Tree.md) - [🔖 二叉排序树](datastructureAlgorithm/book/datastructure/BinarySortTree.md) - [🔖 跳表](datastructureAlgorithm/book/datastructure/skipList.md) +- [🔖 图](datastructureAlgorithm/book/datastructure/Graph.md) #### [🔖 2.2 算法篇](datastructureAlgorithm/README.md) ##### [🔖 排序算法](datastructureAlgorithm/README.md) - [🔖 冒泡排序](datastructureAlgorithm/book/algorithm/sort/BubbleSort.md) @@ -48,12 +49,11 @@ - [🔖 选择排序](datastructureAlgorithm/book/algorithm/sort/SelectSort.md) - [🔖 插入排序](datastructureAlgorithm/book/algorithm/sort/InsertSort.md) - [🔖 希尔排序](datastructureAlgorithm/book/algorithm/sort/DonaldShell.md) +- [🔖 堆排序](datastructureAlgorithm/book/algorithm/tree/HeapSort.md) ##### [查找算法](datastructureAlgorithm/README.md) - [🔖 线性查找](datastructureAlgorithm/book/algorithm/search/SeqSearch.md) - [🔖 二分查找](datastructureAlgorithm/book/algorithm/search/BinarySearch.md) - [🔖 斐波那契(黄金分割法)查找](datastructureAlgorithm/book/algorithm/search/GoldenSection.md) -##### [树结构](datastructureAlgorithm/README.md) -- [🔖 堆排序](datastructureAlgorithm/book/algorithm/tree/HeapSort.md) ## [🔖 三.Java 并发实战与并发设计模式](java/concurrency/README.md) - [🔖 Util](java/concurrency/README.md) - [🔖 ExecutorService指南](java/concurrency/util/ExecutorService指南.md) diff --git a/note/datastructureAlgorithm/README.md b/note/datastructureAlgorithm/README.md index 969c3cf..81be4f5 100644 --- a/note/datastructureAlgorithm/README.md +++ b/note/datastructureAlgorithm/README.md @@ -12,6 +12,7 @@ - [🔖 树](book/datastructure/Tree.md) - [🔖 二叉排序树](book/datastructure/BinarySortTree.md) - [🔖 跳表](book/datastructure/skipList.md) +- [🔖 图](book/datastructure/Graph.md) #### 算法 ##### [排序算法](README.md) - [🔖 冒泡排序](book/algorithm/sort/BubbleSort.md) @@ -20,11 +21,10 @@ - [🔖 选择排序](book/algorithm/sort/SelectSort.md) - [🔖 插入排序](book/algorithm/sort/InsertSort.md) - [🔖 希尔排序](book/algorithm/sort/DonaldShell.md) +- [🔖 堆排序](book/algorithm/tree/HeapSort.md) ##### [查找算法](README.md) - [🔖 线性查找](book/algorithm/search/SeqSearch.md) - [🔖 二分查找](book/algorithm/search/BinarySearch.md) - [🔖 斐波那契(黄金分割法)查找算法](book/algorithm/search/GoldenSection.md) -##### [树结构](README.md) -- [🔖 堆排序](book/algorithm/tree/HeapSort.md) \ No newline at end of file diff --git a/note/datastructureAlgorithm/book/datastructure/Graph.md b/note/datastructureAlgorithm/book/datastructure/Graph.md new file mode 100644 index 0000000..a70b659 --- /dev/null +++ b/note/datastructureAlgorithm/book/datastructure/Graph.md @@ -0,0 +1,406 @@ +## 图 + +### 图基本介绍 + +#### 为什么要有图 + +1) 前面我们学了线性表和树 +2) 线性表局限于一个直接前驱和一个直接后继的关系 +3) 树也只能有一个直接前驱也就是父节点 +4) 当我们需要表示多对多的关系时, 这里我们就用到了图。 + +#### 图的举例说明 + +图是一种数据结构,其中结点可以具有零个或多个相邻元素。两个结点之间的连接称为边。 结点也可以称为顶点。如图: + +![graph](img/graph/graph01.jpg) + +#### 图的常用概念 + +1) 顶点(vertex) +2) 边(edge) +3) 路径 +4) 无向图(如图) + +![graph](img/graph/graph02.jpg) + +5) 有向图 +6) 带权图 + +![graph](img/graph/graph03.jpg) + +### 图的表示方式 + +图的表示方式有两种:二维数组表示(邻接矩阵);链表表示(邻接表)。 + +#### 邻接矩阵 +邻接矩阵是表示图形中顶点之间相邻关系的矩阵,对于 n 个顶点的图而言,矩阵是的 row 和 col 表示的是 1 n +个点。 + +![graph](img/graph/graph04.jpg) +#### 邻接表 +1) 邻接矩阵需要为每个顶点都分配 n 个边的空间,其实有很多边都是不存在,会造成空间的一定损失. +2) 邻接表的实现只关心存在的边,不关心不存在的边。因此没有空间浪费,邻接表由数组+链表组成 +3) 举例说明 + +![graph](img/graph/graph05.jpg) + +### 图的快速入门案例 + +1) 要求: 代码实现如下图结构. + +![graph](img/graph/graph06.jpg) + +2) 思路分析 (1) 存储顶点 String 使用 ArrayList (2) 保存矩阵 int[][] edges +3) 代码实现 + +```java +//核心代码,汇总在后面 +//插入结点 +public void insertVertex(String vertex) { + vertexList.add(vertex); +} +//添加边 +/** +* +* @param v1 表示点的下标即使第几个顶点 "A"-"B" "A"->0 "B"->1 +* @param v2 第二个顶点对应的下标 +* @param weight 表 示 +*/ +public void insertEdge(int v1, int v2, int weight) { + edges[v1][v2] = weight; + edges[v2][v1] = weight; + numOfEdges++; +} +``` + +### 图的深度优先遍历介绍 + +#### 图遍历介绍 +所谓图的遍历,即是对结点的访问。一个图有那么多个结点,如何遍历这些结点,需要特定策略,一般有两种访问策略: (1)深度优先遍历 (2)广度优先遍历 +#### 深度优先遍历基本思想 +图的深度优先搜索(Depth First Search) 。 +1) 深度优先遍历,从初始访问结点出发,初始访问结点可能有多个邻接结点,深度优先遍历的策略就是首先访问第一个邻接结点,然后再以这个被访问的邻接结点作为初始结点,访问它的第一个邻接结点, 可以这样理解: 每次都在访问完当前结点后首先访问当前结点的第一个邻接结点。 +2) 我们可以看到,这样的访问策略是优先往纵向挖掘深入,而不是对一个结点的所有邻接结点进行横向访问。 +3) 显然,深度优先搜索是一个递归的过程 + +#### 深度优先遍历算法步骤 +1) 访问初始结点 v,并标记结点 v 为已访问。 +2) 查找结点 v 的第一个邻接结点 w。 +3) 若 w 存在,则继续执行 4,如果 w 不存在,则回到第 1 步,将从 v 的下一个结点继续。 +4) 若 w 未被访问,对 w 进行深度优先遍历递归(即把 w 当做另一个 v,然后进行步骤 123)。 +5) 查找结点 v 的 w 邻接结点的下一个邻接结点,转到步骤 3。 +6) 分析图 + +![graph](img/graph/graph07.jpg) + +#### 深度优先算法的代码实现 +```java +//核心代码 + +//深度优先遍历算法 +//i 第一次就是 0 +private void dfs(boolean[] isVisited, int i) { +//首先我们访问该结点,输出 + System.out.print(getValueByIndex(i) + "->"); + //将结点设置为已经访问 + isVisited[i] = true; + //查找结点 i 的第一个邻接结点 + w int w = getFirstNeighbor(i); + while(w != -1) {//说明有 + if(!isVisited[w]) { + dfs(isVisited, w); + } + //如果 w 结点已经被访问过 + w = getNextNeighbor(i, w); + } +} + +//对 dfs 进行一个重载, 遍历我们所有的结点,并进行 dfs +public void dfs() { + isVisited = new boolean[vertexList.size()]; +//遍历所有的结点,进行 dfs[回溯] + for(int i = 0; i < getNumOfVertex(); i++) { + if(!isVisited[i]) { + dfs(isVisited, i); + } + } +} +``` +### 图的广度优先遍历 +#### 广度优先遍历基本思想 +1) 图的广度优先搜索(Broad First Search) 。 +2) 类似于一个分层搜索的过程,广度优先遍历需要使用一个队列以保持访问过的结点的顺序,以便按这个顺序来访问这些结点的邻接结点 + +#### 广度优先遍历算法步骤 +1) 访问初始结点 v 并标记结点 v 为已访问。 +2) 结点 v 入队列 +3) 当队列非空时,继续执行,否则算法结束。 +4) 出队列,取得队头结点 u。 +5) 查找结点 u 的第一个邻接结点 w。 +6) 若结点 u 的邻接结点 w 不存在,则转到步骤 3;否则循环执行以下三个步骤: +6.1 若结点 w 尚未被访问,则访问结点 w 并标记为已访问。 +6.2 结点 w 入队列 +6.3 查找结点 u 的继 w 邻接结点后的下一个邻接结点 w,转到步骤 6。 +#### 广度优先算法的图示 + +![graph](img/graph/graph08.jpg) +### 广度优先算法的代码实现 + +```java +//对一个结点进行广度优先遍历的方法 +private void bfs(boolean[] isVisited, int i) { + int u ; // 表示队列的头结点对应下标 + int w ; // 邻接结点 w + //队列,记录结点访问的顺序 + LinkedList queue = new LinkedList(); + //访问结点,输出结点信息 + System.out.print(getValueByIndex(i) + "=>"); + //标记为已访问 + isVisited[i] = true; + //将结点加入队列 + queue.addLast(i); + while( !queue.isEmpty()) { + //取出队列的头结点下标 + u = (Integer)queue.removeFirst(); + //得到第一个邻接结点的下标 w + w = getFirstNeighbor(u); + while(w != -1) {//找到 + //是否访问过 + if(!isVisited[w]) { + System.out.print(getValueByIndex(w) + "=>"); + //标记已经访问 + isVisited[w] = true; + //入队 + queue.addLast(w); + } + //以 u 为前驱点,找 w 后面的下一个邻结点 + w = getNextNeighbor(u, w); //体现出我们的广度优先 + } + } +} +//遍历所有的结点,都进行广度优先搜索 +public void bfs() { + isVisited = new boolean[vertexList.size()]; + for(int i = 0; i < getNumOfVertex(); i++) { + if(!isVisited[i]) { + bfs(isVisited, i); + } + } +} +``` +### 图的代码汇总 + +```java + +package com.javayh.advanced.datastructure.graph; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.LinkedList; + +/** + *

+ * 图 + *

+ * + * @author Dylan + * @version 1.0.0 + * @since 2021-01-05 5:16 PM + */ +public class Graph { + private ArrayList vertexList; //存储顶点集合 + private int[][] edges; //存储图对应的邻结矩阵 + private int numOfEdges; //表示边的数目 + //定义给数组 boolean[], 记录某个结点是否被访问 + private boolean[] isVisited; + public static void main(String[] args) { + //测试一把图是否创建 ok + int n = 8; //结点的个数 + //String Vertexs[] = {"A", "B", "C", "D", "E"}; + String Vertexs[] = {"1", "2", "3", "4", "5", "6", "7", "8"}; + + //创建图对象 + Graph graph = new Graph(n); + //循环的添加顶点 + for(String vertex: Vertexs) { + graph.insertVertex(vertex); + + } + + //添加边 + //A-B A-C B-C B-D B-E + // graph.insertEdge(0, 1, 1); // A-B + // graph.insertEdge(0, 2, 1); // + // graph.insertEdge(1, 2, 1); // + // graph.insertEdge(1, 3, 1); // + // graph.insertEdge(1, 4, 1); // + + //更新边的关系graph.insertEdge(0, 1, 1); + graph.insertEdge(0, 2, 1); + graph.insertEdge(1, 3, 1); + graph.insertEdge(1, 4, 1); + graph.insertEdge(3, 7, 1); + graph.insertEdge(4, 7, 1); + graph.insertEdge(2, 5, 1); + graph.insertEdge(2, 6, 1); + graph.insertEdge(5, 6, 1); + //显示一把邻结矩阵graph.showGraph(); + + //测试一把,我们的 dfs 遍历是否 ok + System.out.println("深度遍历"); + graph.dfs(); // A->B->C->D->E [1->2->4->8->5->3->6->7] + System.out.println(); + System.out.println("广度优先!"); + graph.bfs(); // A->B->C->D-E [1->2->3->4->5->6->7->8] +} + //构造器 + public Graph(int n) { + //初始化矩阵和 vertexList + edges = new int[n][n]; + vertexList = new ArrayList(n); + numOfEdges = 0; + } + + //得到第一个邻接结点的下标 w + /** + * + * @param index + * @return 如果存在就返回对应的下标,否则返回-1 + */ + public int getFirstNeighbor(int index) { + for(int j = 0; j < vertexList.size(); j++) { + if(edges[index][j] > 0) { + return j; + } + } + return -1; + } + + //根据前一个邻接结点的下标来获取下一个邻接结点 + public int getNextNeighbor(int v1, int v2) { + for(int j = v2 + 1; j < vertexList.size(); j++) { + if(edges[v1][j] > 0) { + return j; + } + } + return -1; + } + //深度优先遍历算法 + //i 第一次就是 0 + private void dfs(boolean[] isVisited, int i) { + //首先我们访问该结点,输出 + System.out.print(getValueByIndex(i) + "->"); + //将结点设置为已经访问 + isVisited[i] = true; + //查找结点 i 的第一个邻接结点 w + int w = getFirstNeighbor(i); + while(w != -1) {//说明有 + if(!isVisited[w]) { + dfs(isVisited, w); + } + //如果 w 结点已经被访问过 + w = getNextNeighbor(i, w); + } + } + //对 dfs 进行一个重载, 遍历我们所有的结点,并进行 dfs + public void dfs() { + isVisited = new boolean[vertexList.size()]; + //遍历所有的结点,进行 dfs[回溯] + for(int i = 0; i < getNumOfVertex(); i++) { + if(!isVisited[i]) { + dfs(isVisited, i); + } + } + } + + + //对一个结点进行广度优先遍历的方法 + private void bfs(boolean[] isVisited, int i) { + int u ; // 表示队列的头结点对应下标 + int w ; // 邻接结点 w + //队列,记录结点访问的顺序 + LinkedList queue = new LinkedList(); + //访问结点,输出结点信息 + System.out.print(getValueByIndex(i) + "=>"); + //标记为已访问 + isVisited[i] = true; + //将结点加入队列 + queue.addLast(i); + while( !queue.isEmpty()) { + //取出队列的头结点下标 + u = (Integer)queue.removeFirst(); + //得到第一个邻接结点的下标 w + w = getFirstNeighbor(u); + while(w != -1) {//找到 + //是否访问过 + if(!isVisited[w]) { + System.out.print(getValueByIndex(w) + "=>"); + //标记已经访问 + isVisited[w] = true; + //入队 + queue.addLast(w); + } + //以 u 为前驱点,找 w 后面的下一个邻结点 + w = getNextNeighbor(u, w); //体现出我们的广度优先 + } + } + } + + //遍历所有的结点,都进行广度优先搜索 + public void bfs() { + isVisited = new boolean[vertexList.size()]; + for(int i = 0; i < getNumOfVertex(); i++) { + if(!isVisited[i]) { + bfs(isVisited, i); + } + } + } + + //图中常用的方法 + //返回结点的个数 + public int getNumOfVertex() { + return vertexList.size(); + } + + //显示图对应的矩阵 + public void showGraph() { + for(int[] link : edges) { + System.err.println(Arrays.toString(link)); + } + } + + //得到边的数目 + public int getNumOfEdges() { + return numOfEdges; + } + //返回结点 i(下标)对应的数据 0->"A" 1->"B" 2->"C" + public String getValueByIndex(int i) { + return vertexList.get(i); + } + //返回 v1 和 v2 的权值 + public int getWeight(int v1, int v2) { + return edges[v1][v2]; + } + //插入结点 + public void insertVertex(String vertex) { + vertexList.add(vertex); + } + //添加边 + /** + * + * @param v1 表示点的下标即使第几个顶点 "A"-"B" "A"->0 "B"->1 + * @param v2 第二个顶点对应的下标 + * @param weight 表 示 + */ + public void insertEdge(int v1, int v2, int weight) { + edges[v1][v2] = weight; + edges[v2][v1] = weight; + numOfEdges++; + } +} +``` + + + + diff --git a/note/datastructureAlgorithm/book/datastructure/img/graph/graph01.jpg b/note/datastructureAlgorithm/book/datastructure/img/graph/graph01.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0688907266a2614713e677006b0eca99e31ab8a8 GIT binary patch literal 41090 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

TDBKe|8G0$9|L3>IO&?sF2G*W$U9w-aP` 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Ƿ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 literal 0 HcmV?d00001 diff --git a/note/datastructureAlgorithm/book/datastructure/img/graph/graph04.jpg b/note/datastructureAlgorithm/book/datastructure/img/graph/graph04.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1345da5b1f1b7a8e9b16bee82610da4c47ca8cbd GIT binary patch literal 17145 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

l)Z&K1y}N6<=-b^)DWdF1?BD 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 OaR0Ov2bQ#nM*lCNETRAa literal 0 HcmV?d00001 diff --git a/note/datastructureAlgorithm/book/datastructure/img/graph/graph05.jpg b/note/datastructureAlgorithm/book/datastructure/img/graph/graph05.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b8c105376ceeb7048d90965eca5328a8dbec58df GIT binary patch literal 40933 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äK&$ohK2T^cLf?;(_dYN9t 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 Jci3FtKLGbu_K*Mo literal 0 HcmV?d00001 diff --git a/note/datastructureAlgorithm/book/datastructure/img/graph/graph06.jpg b/note/datastructureAlgorithm/book/datastructure/img/graph/graph06.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c5fc7759c9eddbda1bf6025fb42f42a63d30296c GIT binary patch literal 23078 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 YwE`6QPkmEo`86Hp3c_bnpR_dm2an_l+5i9m literal 0 HcmV?d00001 diff --git a/note/datastructureAlgorithm/book/datastructure/img/graph/graph08.jpg b/note/datastructureAlgorithm/book/datastructure/img/graph/graph08.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0a2d77bf1e672665bbcaddde718679f74230ddfc GIT binary patch literal 20442 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 + * 图 + *

+ * + * @author Dylan + * @version 1.0.0 + * @since 2021-01-05 5:16 PM + */ +public class Graph { + private ArrayList vertexList; //存储顶点集合 + private int[][] edges; //存储图对应的邻结矩阵 + private int numOfEdges; //表示边的数目 + //定义给数组 boolean[], 记录某个结点是否被访问 + private boolean[] isVisited; + public static void main(String[] args) { + //测试一把图是否创建 ok + int n = 8; //结点的个数 + //String Vertexs[] = {"A", "B", "C", "D", "E"}; + String Vertexs[] = {"1", "2", "3", "4", "5", "6", "7", "8"}; + + //创建图对象 + Graph graph = new Graph(n); + //循环的添加顶点 + for(String vertex: Vertexs) { + graph.insertVertex(vertex); + + } + + //添加边 + //A-B A-C B-C B-D B-E + // graph.insertEdge(0, 1, 1); // A-B + // graph.insertEdge(0, 2, 1); // + // graph.insertEdge(1, 2, 1); // + // graph.insertEdge(1, 3, 1); // + // graph.insertEdge(1, 4, 1); // + + //更新边的关系graph.insertEdge(0, 1, 1); + graph.insertEdge(0, 2, 1); + graph.insertEdge(1, 3, 1); + graph.insertEdge(1, 4, 1); + graph.insertEdge(3, 7, 1); + graph.insertEdge(4, 7, 1); + graph.insertEdge(2, 5, 1); + graph.insertEdge(2, 6, 1); + graph.insertEdge(5, 6, 1); + //显示一把邻结矩阵graph.showGraph(); + + //测试一把,我们的 dfs 遍历是否 ok + System.out.println("深度遍历"); + graph.dfs(); // A->B->C->D->E [1->2->4->8->5->3->6->7] + System.out.println(); + System.out.println("广度优先!"); + graph.bfs(); // A->B->C->D-E [1->2->3->4->5->6->7->8] +} + //构造器 + public Graph(int n) { + //初始化矩阵和 vertexList + edges = new int[n][n]; + vertexList = new ArrayList(n); + numOfEdges = 0; + } + + //得到第一个邻接结点的下标 w + /** + * + * @param index + * @return 如果存在就返回对应的下标,否则返回-1 + */ + public int getFirstNeighbor(int index) { + for(int j = 0; j < vertexList.size(); j++) { + if(edges[index][j] > 0) { + return j; + } + } + return -1; + } + + //根据前一个邻接结点的下标来获取下一个邻接结点 + public int getNextNeighbor(int v1, int v2) { + for(int j = v2 + 1; j < vertexList.size(); j++) { + if(edges[v1][j] > 0) { + return j; + } + } + return -1; + } + //深度优先遍历算法 + //i 第一次就是 0 + private void dfs(boolean[] isVisited, int i) { + //首先我们访问该结点,输出 + System.out.print(getValueByIndex(i) + "->"); + //将结点设置为已经访问 + isVisited[i] = true; + //查找结点 i 的第一个邻接结点 w + int w = getFirstNeighbor(i); + while(w != -1) {//说明有 + if(!isVisited[w]) { + dfs(isVisited, w); + } + //如果 w 结点已经被访问过 + w = getNextNeighbor(i, w); + } + } + //对 dfs 进行一个重载, 遍历我们所有的结点,并进行 dfs + public void dfs() { + isVisited = new boolean[vertexList.size()]; + //遍历所有的结点,进行 dfs[回溯] + for(int i = 0; i < getNumOfVertex(); i++) { + if(!isVisited[i]) { + dfs(isVisited, i); + } + } + } + + + //对一个结点进行广度优先遍历的方法 + private void bfs(boolean[] isVisited, int i) { + int u ; // 表示队列的头结点对应下标 + int w ; // 邻接结点 w + //队列,记录结点访问的顺序 + LinkedList queue = new LinkedList(); + //访问结点,输出结点信息 + System.out.print(getValueByIndex(i) + "=>"); + //标记为已访问 + isVisited[i] = true; + //将结点加入队列 + queue.addLast(i); + while( !queue.isEmpty()) { + //取出队列的头结点下标 + u = (Integer)queue.removeFirst(); + //得到第一个邻接结点的下标 w + w = getFirstNeighbor(u); + while(w != -1) {//找到 + //是否访问过 + if(!isVisited[w]) { + System.out.print(getValueByIndex(w) + "=>"); + //标记已经访问 + isVisited[w] = true; + //入队 + queue.addLast(w); + } + //以 u 为前驱点,找 w 后面的下一个邻结点 + w = getNextNeighbor(u, w); //体现出我们的广度优先 + } + } + } + + //遍历所有的结点,都进行广度优先搜索 + public void bfs() { + isVisited = new boolean[vertexList.size()]; + for(int i = 0; i < getNumOfVertex(); i++) { + if(!isVisited[i]) { + bfs(isVisited, i); + } + } + } + + //图中常用的方法 + //返回结点的个数 + public int getNumOfVertex() { + return vertexList.size(); + } + + //显示图对应的矩阵 + public void showGraph() { + for(int[] link : edges) { + System.err.println(Arrays.toString(link)); + } + } + + //得到边的数目 + public int getNumOfEdges() { + return numOfEdges; + } + //返回结点 i(下标)对应的数据 0->"A" 1->"B" 2->"C" + public String getValueByIndex(int i) { + return vertexList.get(i); + } + //返回 v1 和 v2 的权值 + public int getWeight(int v1, int v2) { + return edges[v1][v2]; + } + //插入结点 + public void insertVertex(String vertex) { + vertexList.add(vertex); + } + //添加边 + /** + * + * @param v1 表示点的下标即使第几个顶点 "A"-"B" "A"->0 "B"->1 + * @param v2 第二个顶点对应的下标 + * @param weight 表 示 + */ + public void insertEdge(int v1, int v2, int weight) { + edges[v1][v2] = weight; + edges[v2][v1] = weight; + numOfEdges++; + } +} +