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

自己做的网站可以买东西吗东莞哪家公司做网站好

自己做的网站可以买东西吗,东莞哪家公司做网站好,短连接转换网站开发,重庆建设企业网站文章目录 1. 代码仓库2. 图的基本表示的比较3. 邻接矩阵#xff1a;Array和TreeSet3.1 图示3.2 Array主要代码解析3.3 测试输出3.4 使用TreeSet的代码 4. 邻接表#xff1a;LinkedList4.1 图示4.2 LinkedList主要代码解析4.3 测试输出 5. 完整代码5.1 邻接表 - Array5.2 邻接… 文章目录 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 邻接表-TreeSet5.3 邻接矩阵-LinkedList5.4 输入文件 1. 代码仓库 https://github.com/Chufeng-Jiang/Graph-Theory/tree/main/src/Chapt01_Adjacency2. 图的基本表示的比较 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 LinkedListInteger[] 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 LinkedListInteger();}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 LinkedListInteger[] 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 LinkedListInteger();}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 LinkedListInteger 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 TreeSetInteger[] 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 TreeSetInteger();}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 IterableInteger 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 ArrayListInteger adj(int v){validateVertex(v);ArrayListInteger 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://www.hkea.cn/news/14570655/

相关文章:

  • pc端网站模型建设工具ppt设计教程网
  • 中山网站建设模板招商帮忙建站的公司
  • 提供网站建设方案服务网站h标签
  • 企业培训考试系统官网成都网站制作实力乐云seo
  • 做电商网站要多少钱义乌的论坛网站建设
  • 网站建设优化文章网站建设论文读书笔记
  • 网站建设需要知识徐州网站运营
  • 网站除了做流量还需要什么网页游戏服务端
  • 中国勘察设计行业信息化建设网站网站页面是自己做还是使用模板
  • 美工外包网站活动网站怎么建设
  • 网站推广方法主要有什么现在还做响应式网站吗
  • 青山网站建设零基础搭建网站
  • vivo官方网站进入荣昌集团网站建设
  • wordpress建站视屏网站是不是每年都要续费
  • 江苏建设信息网站深圳东门步行街图片
  • 瑞昌网站建设做网站多少钱 网络服务
  • 门户网站建设参考文献网页背景图片高清
  • 公司可以备案几个网站荆州建设局网站
  • 网站制作预算中国建设机械职业教育网证书查询
  • 制作论文招聘网站的app开发公司价格
  • 微商城手机网站制作公司科技让生活更美好作文450字
  • 温州哪里可以做企业网站湛江网站推广优化
  • 地图制作网站网站建设技术架构和语言
  • 微网站建设教程视频如何给自己的公司做网站
  • 侨联 文化宣传 侨联网站建设wordpress论坛哪个功能全面
  • 培训医院网站建设网站二级目录打不开
  • 房山营销型网站建设宁波快速建站模板
  • 江门市建设工程安全监督网站贸易公司如何找客户
  • 怎样做网站 - 百度物流建设网站
  • flv网站建设手机网站建设宽度