当前位置: 首页 > news >正文

wordpress整合百度站内搜索餐饮管理培训课程

wordpress整合百度站内搜索,餐饮管理培训课程,微信小程序入驻,银川怎么做网站文章目录 1. 代码仓库2. 图的基本表示的比较3. 邻接矩阵:Array和TreeSet3.1 图示3.2 Array主要代码解析3.3 测试输出3.4 使用TreeSet的代码 4. 邻接表:LinkedList4.1 图示4.2 LinkedList主要代码解析4.3 测试输出 5. 完整代码5.1 邻接表 - Array5.2 邻接…

文章目录

  • 1. 代码仓库
  • 2. 图的基本表示的比较
  • 3. 邻接矩阵:Array和TreeSet
    • 3.1 图示
    • 3.2 Array主要代码解析
    • 3.3 测试输出
    • 3.4 使用TreeSet的代码
  • 4. 邻接表:LinkedList
    • 4.1 图示
    • 4.2 LinkedList主要代码解析
    • 4.3 测试输出
  • 5. 完整代码
    • 5.1 邻接表 - Array
    • 5.2 邻接表-TreeSet
    • 5.3 邻接矩阵-LinkedList
    • 5.4 输入文件

1. 代码仓库

https://github.com/Chufeng-Jiang/Graph-Theory/tree/main/src/Chapt01_Adjacency

2. 图的基本表示的比较

在这里插入图片描述

3. 邻接矩阵:Array和TreeSet

3.1 图示

在这里插入图片描述

3.2 Array主要代码解析

代码有删减

public AdjMatrix(String filename){File file = new File(filename);try(Scanner scanner = new Scanner(file)){       V = scanner.nextInt(); //读取第一行第一个数,代表图中的顶点数//构造邻接矩阵adj = new int[V][V]; E = scanner.nextInt(); //读取第一行第二个数,代表图中边的数量// E是边的数量,在g.txt中表示为第二行开始的E行for (int i = 0; i < E; i++) {int a = scanner.nextInt(); //读取边的一个顶点int b = scanner.nextInt(); //读取边的另一个顶点adj[a][b] = 1; //存在边则设置为1adj[b][a] = 1;}}
}

在这里插入图片描述

3.3 测试输出

在这里插入图片描述

3.4 使用TreeSet的代码

代码有删减
只需要改动一行

adj = new TreeSet[V]; //构造邻接表, V行,V个LinkedList

在这里插入图片描述

4. 邻接表:LinkedList

4.1 图示

在这里插入图片描述

4.2 LinkedList主要代码解析

代码有删减

public class AdjList {private int V;private int E;private LinkedList<Integer>[] adj;public AdjList(String filename){File file = new File(filename);try(Scanner scanner = new Scanner(file)){V = scanner.nextInt();/*构造邻接表, V行,V个LinkedList*/adj = new LinkedList[V]; for (int i = 0; i < V; i++) {adj[i] = new LinkedList<Integer>();}E = scanner.nextInt(); //读取第一行第二个数// E是边的数量,在g.txt中表示为第二行开始的E行for (int i = 0; i < E; i++) {int a = scanner.nextInt(); //读取边的一个顶点int b = scanner.nextInt(); //读取边的另一个顶点adj[a].add(b);adj[b].add(a);}}}

在这里插入图片描述

4.3 测试输出

在这里插入图片描述

5. 完整代码

5.1 邻接表 - Array

package Chapt01_Adjacency;import java.io.File;
import java.io.IOException;
import java.util.LinkedList;
import java.util.Scanner;public class AdjList {private int V;private int E;private LinkedList<Integer>[] adj;public AdjList(String filename){File file = new File(filename);try(Scanner scanner = new Scanner(file)){V = scanner.nextInt();if(V < 0) throw new IllegalArgumentException("V must be non-negative");adj = new LinkedList[V]; //构造邻接表, V行,V个LinkedListfor (int i = 0; i < V; i++) {adj[i] = new LinkedList<Integer>();}E = scanner.nextInt(); //读取第一行第二个数if(E < 0) throw new IllegalArgumentException("E must be non-negative");// E是边的数量,在g.txt中表示为第二行开始的E行for (int i = 0; i < E; i++) {int a = scanner.nextInt(); //读取边的一个顶点validateVertex(a);int b = scanner.nextInt(); //读取边的另一个顶点validateVertex(b);if(a == b) throw new IllegalArgumentException("Self Loop is Detected"); //判断是够存在自环边if(adj[a].contains(b)) throw new IllegalArgumentException("Parallel Edges are Detected"); //判断是够存在平行l边adj[a].add(b);adj[b].add(a);}}catch (IOException e){e.printStackTrace();}}private void validateVertex(int v){if(v < 0 || v >= V)throw new IllegalArgumentException("vertex" + v + "is invalid");}public int V(){return V;}public int E(){return E;}public boolean hasEdge(int v, int w){validateVertex(v);validateVertex(w);return adj[v].contains(w);}public LinkedList<Integer> adj(int v){validateVertex(v);return adj[v];}public int degree(int v){return adj(v).size();}@Overridepublic String toString(){StringBuilder sb = new StringBuilder();sb.append(String.format("V = %d, E = %d\n", V, E));for (int i = 0; i < V; i++) {sb.append(String.format("%d:",i));for (int w: adj[i]) {sb.append(String.format("%d ",w));}sb.append('\n');}return sb.toString();}public static void main(String[] args){AdjList adjList = new AdjList("g1.txt"); //新建邻接矩阵,并从文件内容初始化System.out.println(adjList);}
}

5.2 邻接表-TreeSet

package Chapt01_Adjacency;import java.io.File;
import java.io.IOException;
import java.util.Scanner;
import java.util.TreeSet;public class AdjSet {private int V;private int E;private TreeSet<Integer>[] adj;public AdjSet(String filename){File file = new File(filename);try(Scanner scanner = new Scanner(file)){V = scanner.nextInt();if(V < 0) throw new IllegalArgumentException("V must be non-negative");adj = new TreeSet[V]; //构造邻接表, V行,V个LinkedListfor (int i = 0; i < V; i++) {adj[i] = new TreeSet<Integer>();}E = scanner.nextInt(); //读取第一行第二个数if(E < 0) throw new IllegalArgumentException("E must be non-negative");// E是边的数量,在g.txt中表示为第二行开始的E行for (int i = 0; i < E; i++) {int a = scanner.nextInt(); //读取边的一个顶点validateVertex(a);int b = scanner.nextInt(); //读取边的另一个顶点validateVertex(b);if(a == b) throw new IllegalArgumentException("Self Loop is Detected"); //判断是够存在自环边if(adj[a].contains(b)) throw new IllegalArgumentException("Parallel Edges are Detected"); //判断是够存在平行l边adj[a].add(b);adj[b].add(a);}}catch (IOException e){e.printStackTrace();}}private void validateVertex(int v){if(v < 0 || v >= V)throw new IllegalArgumentException("vertex" + v + "is invalid");}public int V(){return V;}public int E(){return E;}public boolean hasEdge(int v, int w){validateVertex(v);validateVertex(w);return adj[v].contains(w);}public Iterable<Integer> adj(int v){ // 可以是TreeSet,但是数组、链表、红黑树都是实现了Iterable的接口,因此可以统一写成这样validateVertex(v);return adj[v];}public int degree(int v){validateVertex(v);return adj[v].size(); // Iterable没有size()方法}@Overridepublic String toString(){StringBuilder sb = new StringBuilder();sb.append(String.format("V = %d, E = %d\n", V, E));for (int i = 0; i < V; i++) {sb.append(String.format("%d:",i));for (int w: adj[i]) {sb.append(String.format("%d ",w));}sb.append('\n');}return sb.toString();}public static void main(String[] args){AdjSet adjSet = new AdjSet("g1.txt"); //新建邻接矩阵,并从文件内容初始化System.out.println(adjSet);}
}

5.3 邻接矩阵-LinkedList

package Chapt01_Adjacency;import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Scanner;public class AdjMatrix {private int V;private int E;private int[][] adj;// 构造函数,从文件内容初始化邻接矩阵public AdjMatrix(String filename){File file = new File(filename);try(Scanner scanner = new Scanner(file)){V = scanner.nextInt(); //读取第一行第一个数,代表图中的顶点数if(V < 0) throw new IllegalArgumentException("V must be non-negative");adj = new int[V][V]; //构造邻接矩阵E = scanner.nextInt(); //读取第一行第二个数,代表图中边的数量if(E < 0) throw new IllegalArgumentException("E must be non-negative");// E是边的数量,在g.txt中表示为第二行开始的E行for (int i = 0; i < E; i++) {int a = scanner.nextInt(); //读取边的一个顶点validateVertex(a);int b = scanner.nextInt(); //读取边的另一个顶点validateVertex(b);if(a == b) throw new IllegalArgumentException("Self Loop is Detected"); //判断是够存在自环边if(adj[a][b] == 1) throw new IllegalArgumentException("Parallel Edges are Detected"); //判断是否存在平行l边adj[a][b] = 1; //存在边则设置为1adj[b][a] = 1;}}catch (IOException e){e.printStackTrace();}}private void validateVertex(int v){if(v < 0 || v >= V)throw new IllegalArgumentException("vertex" + v + "is invalid");}public int V(){return V;}public int E(){return E;}public boolean hasEdge(int v, int w){validateVertex(v);validateVertex(w);return adj[v][w] == 1;}public ArrayList<Integer> adj(int v){validateVertex(v);ArrayList<Integer> res = new ArrayList<>();for (int i = 0; i < V; i++) {if(adj[v][i] == 1) res.add(i);}return res;}public int degree(int v){return adj(v).size(); //adj(v)是上方的adj方法,size()是ArrayList的接口}// 用于在控制台打印该临接矩阵@Overridepublic String toString(){StringBuilder sb = new StringBuilder();sb.append(String.format("V = %d, E = %d\n", V, E)); //打印顶点数和边的数量for (int i = 0; i < V; i++) { //行for (int j = 0; j < V; j++) { //列sb.append(String.format("%d",adj[i][j])); //读取矩阵的值}sb.append('\n'); //行尾换行}return sb.toString(); //返回该邻接矩阵}public static void main(String[] args){AdjMatrix adjMatrix = new AdjMatrix("g1.txt"); //新建邻接矩阵,并从文件内容初始化System.out.println(adjMatrix);}
}

5.4 输入文件

7 9
0 1
0 3
1 2
1 6
2 3
2 5
3 4
4 5
5 6

文章转载自:
http://turkomen.crhd.cn
http://laminose.crhd.cn
http://unrounded.crhd.cn
http://kale.crhd.cn
http://miscounsel.crhd.cn
http://nicety.crhd.cn
http://fibriform.crhd.cn
http://cumbrous.crhd.cn
http://eurogroup.crhd.cn
http://amaretto.crhd.cn
http://cellist.crhd.cn
http://eligible.crhd.cn
http://hosepipe.crhd.cn
http://unprotestantize.crhd.cn
http://giles.crhd.cn
http://astacin.crhd.cn
http://olefin.crhd.cn
http://ferrotype.crhd.cn
http://hermitage.crhd.cn
http://cognominal.crhd.cn
http://balminess.crhd.cn
http://beanbag.crhd.cn
http://landsmal.crhd.cn
http://criminative.crhd.cn
http://standford.crhd.cn
http://rhebuck.crhd.cn
http://vagabond.crhd.cn
http://creasote.crhd.cn
http://munich.crhd.cn
http://scrobiculate.crhd.cn
http://pus.crhd.cn
http://trikerion.crhd.cn
http://anionic.crhd.cn
http://related.crhd.cn
http://greengage.crhd.cn
http://exequatur.crhd.cn
http://forzando.crhd.cn
http://amidate.crhd.cn
http://squassation.crhd.cn
http://functionate.crhd.cn
http://revisal.crhd.cn
http://stylohyoid.crhd.cn
http://mdram.crhd.cn
http://agminate.crhd.cn
http://interfold.crhd.cn
http://forgettery.crhd.cn
http://bystreet.crhd.cn
http://hexastyle.crhd.cn
http://overstrain.crhd.cn
http://subtitle.crhd.cn
http://bvds.crhd.cn
http://tripe.crhd.cn
http://agnes.crhd.cn
http://serrae.crhd.cn
http://undistracted.crhd.cn
http://cigaret.crhd.cn
http://eruption.crhd.cn
http://devaluationist.crhd.cn
http://unlace.crhd.cn
http://raec.crhd.cn
http://noodle.crhd.cn
http://crystallite.crhd.cn
http://untorn.crhd.cn
http://education.crhd.cn
http://legiron.crhd.cn
http://volitation.crhd.cn
http://malawi.crhd.cn
http://immit.crhd.cn
http://rehydration.crhd.cn
http://agoing.crhd.cn
http://cajolery.crhd.cn
http://quenchable.crhd.cn
http://clicketyclack.crhd.cn
http://intermezzo.crhd.cn
http://unsubsidized.crhd.cn
http://frondescent.crhd.cn
http://billyboy.crhd.cn
http://earthworm.crhd.cn
http://fivepence.crhd.cn
http://notarise.crhd.cn
http://basilar.crhd.cn
http://manipulative.crhd.cn
http://paleoecology.crhd.cn
http://phenetole.crhd.cn
http://separator.crhd.cn
http://ferbam.crhd.cn
http://suborbital.crhd.cn
http://yokel.crhd.cn
http://glume.crhd.cn
http://theanthropical.crhd.cn
http://billiardist.crhd.cn
http://cyetic.crhd.cn
http://headline.crhd.cn
http://unasked.crhd.cn
http://crimped.crhd.cn
http://telpher.crhd.cn
http://pregnenolone.crhd.cn
http://bosshead.crhd.cn
http://increasing.crhd.cn
http://damnation.crhd.cn
http://www.15wanjia.com/news/93241.html

相关文章:

  • 建设公司加盟seo管家
  • 网站做什么内容赚钱企业软文代写
  • dw中用php做网站搜盘 资源网
  • 做cra需要关注的网站网络营销专业学什么
  • 金融网站框架模板下载安装怎么制作链接网页
  • ps做网站的效果图汽车软文广告
  • 婚礼网站怎么做网站建设排名优化
  • 做网站必须要文网文吗千锋教育出来好找工作吗
  • 苏州建设网站电商平台怎么加入
  • 长春模板自助建站营销渠道策划方案
  • 做网站弄什么语言谷歌搜索引擎大全
  • 能够做代理的网站有哪些百家号权重查询站长工具
  • 如何在别人的网站模板上加兼容深圳百度开户
  • 经营性网站指什么游戏推广在哪里接活
  • 怎么做平台网站关键词分析软件
  • 团购机票网站建设黄山网络推广公司
  • 通辽网站seo谷歌在线搜索
  • 邯郸做网站询安联网络免费域名空间申请网址
  • 东营网站建设费用百度登录页
  • 做网站最下面写什么软件软文推广有哪些
  • 什么网站程序做资料库宁波seo整站优化软件
  • 做养生哪个网站有客人做电商如何起步
  • 酒店网站建设方案策划百度识图网页版入口
  • 福建龙岩疫情最新数据seo教程培训
  • 网站平台需要做无形资产吗 怎么做百度指数官网数据
  • 全球最大设计网站百度网页版入口链接
  • 建网站就找伍佰亿百度网站的域名地址
  • 网站建设尢首先金手指兰州网络推广优化怎样
  • 玉林市网站开发公司市场营销说白了就是干什么的
  • 怎么建网站不用买空间线上营销推广方式