0
点赞
收藏
分享

微信扫一扫

我的第一个HTML标签网页——基于Java的图论

at小涛 2022-09-27 阅读 153


部份效果图

我的第一个HTML标签网页——基于Java的图论_i++


Java实现邻接表

图论基础知识基于Java实现图论算法


目录

 ​​•Java实现邻接表 ​​

 ​​•Java判断稀疏图 ​​

 

Java实现邻接表

package GraphBase;
import java.util.*;
public class ljtable {
static int n, m; // 顶点数n,边数m
static ArrayList<edge>[] G = new ArrayList[100005]; // 图G的邻接表 static class edge {
// 边的终点编号v,边权w
int v, w; edge(int v, int w) {
this.v = v;
this.w = w;
}
} public static void function(int x) {
// 遍历邻接表中,每个节点的相邻节点
for (int i = 0; i < G[x].size(); i++) {
int v = G[x].get(i).v;
int w = G[x].get(i).w;
}
} public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
n = sc.nextInt();
m=sc.nextInt();
// 将G数组中的每一个ArrayList<edge>元素都要初始化
for (int i = 0; i <= n; i++) {
G[i] = new ArrayList<edge>();
}
// 加入新边,从v1到v2,权值为w
for (int i = 0; i < m; i++) {
int v1 = sc.nextInt();
int v2 = sc.nextInt();
int w = sc.nextInt();
G[v1].add(new edge(v2, w));
// 如果是无向图
G[v2].add(new edge(v1, w));
}
}
}

Java判断稀疏图 import java.util.*;

public class Main {
static int n, m; // 顶点数n,边数m
static ArrayList<edge>[] G = new ArrayList[100005]; // 图G的邻接表

static class edge {
// 边的终点编号v,边权w
int v, w;

edge(int v, int w) {
this.v = v;
this.w = w;
}
}

public static void function(int x) {
// 遍历邻接表中,每个节点的相邻节点
for (int i = 0; i < G[x].size(); i++) {
int v = G[x].get(i).v;
int w = G[x].get(i).w;
}
}

public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
n = cin.nextInt();
// m = sc.nextInt();
// 将G数组中的每一个ArrayList<edge>元素都要初始化
for (int i = 0; i <= n; i++) {
G[i] = new ArrayList<edge>();
}
// 加入新边,从v1到v2,权值为w
/*
* for (int i = 0; i < n; i++) { int v1 = sc.nextInt(); int v2 = sc.nextInt();
* int w = sc.nextInt(); G[v1].add(new edge(v2, w)); // 如果是无向图 G[v2].add(new
* edge(v1, w)); }
*/
//int g[][] = new int[101][101];
int cnt = 0;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++)
int d = cin.nextInt();
if(i != j && d == 1)
cnt++;
}
}
if(cnt <= n * 10)
System.out.println("Yes");
else System.out.println("No");


}
}

图论基础知识
基于Java实现图论算法

​​​ ​​ ​​

目录
 

 ​​•Java实现邻接表 ​​

 ​​•Java判断稀疏图 ​​

 

Java实现邻接表

package GraphBase;

import java.util.*;

public class ljtable {
static int n, m; // 顶点数n,边数m
static ArrayList<edge>[] G = new ArrayList[100005]; // 图G的邻接表

static class edge {
// 边的终点编号v,边权w
int v, w;

edge(int v, int w) {
this.v = v;
this.w = w;
}
}

public static void function(int x) {
// 遍历邻接表中,每个节点的相邻节点
for (int i = 0; i < G[x].size(); i++) {
int v = G[x].get(i).v;
int w = G[x].get(i).w;
}
}

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
n = sc.nextInt();
m=sc.nextInt();
// 将G数组中的每一个ArrayList<edge>元素都要初始化
for (int i = 0; i <= n; i++) {
G[i] = new ArrayList<edge>();
}
// 加入新边,从v1到v2,权值为w
for (int i = 0; i < m; i++) {
int v1 = sc.nextInt();
int v2 = sc.nextInt();
int w = sc.nextInt();
G[v1].add(new edge(v2, w));
// 如果是无向图
G[v2].add(new edge(v1, w));
}
}
}

​​​ ​​​​ ​

​Java判断稀疏图

​ import java.util.*;

public class Main {
static int n, m; // 顶点数n,边数m
static ArrayList<edge>[] G = new ArrayList[100005]; // 图G的邻接表

static class edge {
// 边的终点编号v,边权w
int v, w;

edge(int v, int w) {
this.v = v;
this.w = w;
}
}

public static void function(int x) {
// 遍历邻接表中,每个节点的相邻节点
for (int i = 0; i < G[x].size(); i++) {
int v = G[x].get(i).v;
int w = G[x].get(i).w;
}
}

public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
n = cin.nextInt();
// m = sc.nextInt();
// 将G数组中的每一个ArrayList<edge>元素都要初始化
for (int i = 0; i <= n; i++) {
G[i] = new ArrayList<edge>();
}
// 加入新边,从v1到v2,权值为w
/*
* for (int i = 0; i < n; i++) { int v1 = sc.nextInt(); int v2 = sc.nextInt();
* int w = sc.nextInt(); G[v1].add(new edge(v2, w)); // 如果是无向图 G[v2].add(new
* edge(v1, w)); }
*/
//int g[][] = new int[101][101];
int cnt = 0;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
int d = cin.nextInt();
if(i != j && d == 1)
cnt++;
}
}
if(cnt <= n * 10)
System.out.println("Yes");
else System.out.println("No");


}
}

Created By: ​​郭千仞​​

​​To top​​​

​​


举报

相关推荐

0 条评论