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

训做网站的心得体会范文网站seo优化是什么

训做网站的心得体会范文,网站seo优化是什么,一品威客网接单平台可靠吗,一站式手机网站制作文章目录 带权图1.1带权图的实现1.2 完整代码 带权图 1.1带权图的实现 在无向无权图的基础上,增加边的权。 使用TreeMap存储边的权重。 遍历输入文件,创建TreeMap adj存储每个节点。每个输入的adj节点链接新的TreeMap,存储相邻的边和权重 …

文章目录

  • 带权图
    • 1.1带权图的实现
    • 1.2 完整代码

带权图

在这里插入图片描述

1.1带权图的实现

在无向无权图的基础上,增加边的权。

使用TreeMap存储边的权重。

  • 遍历输入文件,创建TreeMap adj存储每个节点。
  • 每个输入的adj节点链接新的TreeMap,存储相邻的边和权重
private TreeMap<Integer, Integer>[] adj;adj = new TreeMap[V];for(int i = 0; i < V; i ++)adj[i] = new TreeMap<Integer, Integer>();
  • 两条边相连,则分别把权重加入各自的邻接表中
adj[a].put(b, weight);
adj[b].put(a, weight);
  • 判断两点之间是否有边
public boolean hasEdge(int v, int w){validateVertex(v);validateVertex(w);return adj[v].containsKey(w);
}
  • 求相邻的所有节点
public Iterable<Integer> adj(int v){validateVertex(v);return adj[v].keySet();
}
  • 求两点的权值
public int getWeight(int v, int w){if(hasEdge(v, w)) return adj[v].get(w);throw new IllegalArgumentException(String.format("No edge %d-%d", v, w));
}
  • 移除边
public void removeEdge(int v, int w){validateVertex(v);validateVertex(w);if(adj[v].containsKey(w)) E --;adj[v].remove(w);adj[w].remove(v);
}
  • 复制一个图
public Object clone(){try{WeightedGraph cloned = (WeightedGraph) super.clone();cloned.adj = new TreeMap[V];for(int v = 0; v < V; v ++){cloned.adj[v] = new TreeMap<Integer, Integer>();for(Map.Entry<Integer, Integer> entry: adj[v].entrySet())cloned.adj[v].put(entry.getKey(), entry.getValue());}return cloned;}catch (CloneNotSupportedException e){e.printStackTrace();}return null;
}

1.2 完整代码

package Chapter09_Weight_Graph;import java.io.File;
import java.io.IOException;
import java.util.Map;
import java.util.TreeMap;
import java.util.Scanner;/// 暂时只支持无向带权图
public class WeightedGraph implements Cloneable{private int V;private int E;private TreeMap<Integer, Integer>[] adj;public WeightedGraph(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 TreeMap[V];for(int i = 0; i < V; i ++)adj[i] = new TreeMap<Integer, Integer>();E = scanner.nextInt();if(E < 0) throw new IllegalArgumentException("E must be non-negative");for(int i = 0; i < E; i ++){int a = scanner.nextInt();validateVertex(a);int b = scanner.nextInt();validateVertex(b);int weight = scanner.nextInt();if(a == b) throw new IllegalArgumentException("Self Loop is Detected!");if(adj[a].containsKey(b)) throw new IllegalArgumentException("Parallel Edges are Detected!");adj[a].put(b, weight);adj[b].put(a, weight);}}catch(IOException e){e.printStackTrace();}}public 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].containsKey(w);}public Iterable<Integer> adj(int v){validateVertex(v);return adj[v].keySet();}public int getWeight(int v, int w){if(hasEdge(v, w)) return adj[v].get(w);throw new IllegalArgumentException(String.format("No edge %d-%d", v, w));}public int degree(int v){validateVertex(v);return adj[v].size();}public void removeEdge(int v, int w){validateVertex(v);validateVertex(w);if(adj[v].containsKey(w)) E --;adj[v].remove(w);adj[w].remove(v);}@Overridepublic Object clone(){try{WeightedGraph cloned = (WeightedGraph) super.clone();cloned.adj = new TreeMap[V];for(int v = 0; v < V; v ++){cloned.adj[v] = new TreeMap<Integer, Integer>();for(Map.Entry<Integer, Integer> entry: adj[v].entrySet())cloned.adj[v].put(entry.getKey(), entry.getValue());}return cloned;}catch (CloneNotSupportedException e){e.printStackTrace();}return null;}@Overridepublic String toString(){StringBuilder sb = new StringBuilder();sb.append(String.format("V = %d, E = %d\n", V, E));for(int v = 0; v < V; v ++){sb.append(String.format("%d : ", v));for(Map.Entry<Integer, Integer> entry: adj[v].entrySet())sb.append(String.format("(%d: %d) ", entry.getKey(), entry.getValue()));sb.append('\n');}return sb.toString();}public static void main(String[] args){WeightedGraph g = new WeightedGraph("gw1.txt");System.out.print(g);}
}

在这里插入图片描述

http://www.dt0577.cn/news/17109.html

相关文章:

  • 姑苏企业建设网站公司头条新闻今日头条
  • 苹果cms建站教程宁德市公共资源交易中心
  • 如何做公司网站的网络营销专业技能
  • 有哪些做海岛的网站数据库营销
  • Wordpress 删除nginx优化内容
  • 遵义市红花岗区疫情最新消息hyein seo
  • 阿里虚拟主机怎么做两个网站濮阳市网站建设
  • 做网站开发考什么研互联网营销的方法
  • 街区网站建设合肥百度推广排名优化
  • 江苏建设教育协会网站网络营销首先要进行
  • 电子商务平台商家入驻协议seo关键词优化举例
  • 海南房产网站开发无限制搜索引擎排名
  • 阿克苏网站建设公司郑州网站优化哪家好
  • 快速刷网站排名什么是友情链接?
  • 宿州科技网站建设百度推广在线客服
  • 贵州省住房和城乡建设厅网网站刷关键词排名
  • 263企业邮箱客服建站合肥网络公司seo
  • 网站建设 招标公告产品推广平台有哪些
  • 开发公司安全工作总结汇报搜索引擎推广和优化方案
  • 小江网站建设公司4001688688人工服务
  • 上海品划网络做网站今日竞彩足球最新比赛结果查询
  • 广西住房建设厅网站网络推广发展
  • 台州网站设计外包网页设计与制作代码
  • 很色h做游戏网站网店代运营公司
  • 如何做房产网站关键词工具网站
  • 个人域名 做公司网站百度店铺注册
  • 一个公司怎么做网站都放些什么seo难不难学
  • 网站商城首页怎么做吸引人百度爱企查电话人工服务总部
  • 网站建设需要多少温州seo排名公司
  • 宿迁网站建设公司今日新闻简讯30条