图的表示与基础

编程入门 行业动态 更新时间:2024-10-10 10:23:35

图的表示与<a href=https://www.elefans.com/category/jswz/34/1770030.html style=基础"/>

图的表示与基础

1.图的基础知识

该图片来自于:  

2.稀疏图与稠密图

G(V,E):V顶点个数,E边的个数

稀疏图:E<<V²        一般用邻接表表示(数组+链表)

稠密图:E接近V²        一般用邻接矩阵表示(二维数组)

3.图的两种表示

邻接表法:

class Graph {int[][] matrix;int size;public Graph(int size) {this.size = size;matrix = new int[size][size];}public void addEdge(int from, int to) {matrix[from][to] = 1;matrix[to][from] = 1; // 如果是无向图,需要加上这一行}public void printGraph() {for (int i = 0; i < matrix.length; i++) {for (int j = 0; j < matrix[i].length; j++) {System.out.print(matrix[i][j]+"  ");}System.out.println();}}public static void main(String[] args) {Graph graph = new Graph(5);graph.addEdge(0, 1);graph.addEdge(0, 2);graph.addEdge(0, 3);graph.addEdge(0, 4);graph.addEdge(1, 2);graph.addEdge(1, 3);graph.addEdge(1, 4);graph.addEdge(2, 3);graph.addEdge(2, 4);graph.addEdge(3, 4);graph.printGraph();}

 

邻接矩阵法:

public class Graph2 {int V;	//图的顶点个数LinkedList<Integer> adjListArray[];//数组链表:数组位置存储的是链表,链表里的元素是IntegerGraph2(int V) {this.V = V;adjListArray = new LinkedList[V];for (int i = 0; i < V; i++) {adjListArray[i] = new LinkedList<>();}}void addEdge(int src, int dest) {//添加边adjListArray[src].add(dest);adjListArray[dest].add(src); // 如果是无向图,需要加上这一行}void printGraph() {for (int v = 0; v < V; v++) {System.out.println("Adjacency list of vertex " + v);System.out.print("head");for (Integer pCrawl : adjListArray[v]) {System.out.print(" -> " + pCrawl);}System.out.println("\n");}}public static void main(String[] args) {Graph2 graph2 = new Graph2(5);System.out.println("顶点个数为:"+graph2.V);graph2.addEdge(0, 1);graph2.addEdge(0, 2);graph2.addEdge(0, 3);graph2.addEdge(0, 4);graph2.addEdge(1, 2);graph2.addEdge(1, 3);graph2.addEdge(1, 4);graph2.addEdge(2, 3);graph2.addEdge(2, 4);graph2.addEdge(3, 4);graph2.printGraph();}
}

 

更多推荐

图的表示与基础

本文发布于:2023-11-15 00:27:23,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1590450.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:基础

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!