数据结构学习笔记(七):图的深度优先和广度优先算法
一、概述
图是一种数据结构,其中结点可以具有0个或者多个相邻的元素,两个结点之间的连接称为边。结点也可以称为顶点。
二、图的表示方法
- 邻接矩阵
邻接矩阵中,1表示两个结点相连通,0表示两个结点不连通。如图中0和1,2,3连通,故矩阵中(0,1)(0,2)(0,3)为1,其余不相通的位置为0。
- 邻接表
三、创建图的邻接矩阵
实现代码:
public class Graph {
private int numsOfEdges;
private ArrayList<String> vertexList;
private int[][] edges;
public Graph(int n) {
vertexList = new ArrayList<String>(n);
edges = new int[n][n];
}
//加入结点
public void insert(String str){
vertexList.add(str);
}
//此方法用于将两个结点连通
//a,b表示相通的两个结点,weight为权重
public void setEdges(int a,int b,int weight){
edges[a][b] = weight;
edges[b][a] = weight;
numsOfEdges++;
}
//获取结点的个数
public int getNumsOfVertex(){
return vertexList.size();
}
//得到边的数目
public int getNumsOfEdges(){