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

门户网站的发展趋势中山品牌网站设计

门户网站的发展趋势,中山品牌网站设计,网站建设 提供源码,做网站在哪买域名一、概念 和二叉树的区别:图可能有环 常见概念 顶点(Vertex): 图中的节点或点。边(Edge): 顶点之间的连接线,描述节点之间的关系。有向图(Directed Graph)&…

一、概念

和二叉树的区别:图可能有环

常见概念

  1. 顶点(Vertex): 图中的节点或点。
  2. 边(Edge): 顶点之间的连接线,描述节点之间的关系。
  3. 有向图(Directed Graph): 边具有方向性的图,边有箭头表示方向。
  4. 无向图(Undirected Graph): 边没有方向性的图。
  5. 路径(Path): 顶点序列,通过边连接的顶点序列。
  6. 回路(Cycle): 闭合的路径,起点和终点相同的路径。
  7. 连通图(Connected Graph): 图中任意两个顶点之间都存在路径的图。
  8. 强连通图(Strongly Connected Graph): 有向图中任意两个顶点之间都存在双向路径的图。
  9. 连通分量(Connected Component): 无向图中的极大连通子图。
  10. 树(Tree): 无环连通图,任意两个节点都有唯一路径。
  11. 森林(Forest): 多个不相交树的集合。
  12. 度(Degree): 顶点的度是指与该顶点相关联的边的数量。
  13. 权重(Weight): 边或者顶点上的数值,表示边的代价或者顶点的属性。

邻接矩阵

ABCD
A0正无穷58
B正无穷09正无穷
C5904
D8正无穷40

邻接表法

Nodeweight
AC5
AD8
CB9
CD4
BC9
DA8
DC4

二、算法题

1、套路模板


/*** @author jeb_lin* 22:27 2023/11/29*/
public class Node {public int value; // 可以改成 Stringpublic int in;// 入度public int out;// 出度public ArrayList<Node> nexts; // 多个后继节点public ArrayList<Edge> edges; // 多条边,该节点指出去的public Node(int value){this.value = value;this.in = 0;this.out = 0;this.nexts = new ArrayList<>();this.edges = new ArrayList<>();}public int getValue() {return value;}public void setValue(int value) {this.value = value;}public int getIn() {return in;}public void setIn(int in) {this.in = in;}public int getOut() {return out;}public void setOut(int out) {this.out = out;}public ArrayList<Node> getNexts() {return nexts;}public void setNexts(ArrayList<Node> nexts) {this.nexts = nexts;}public ArrayList<Edge> getEdges() {return edges;}public void setEdges(ArrayList<Edge> edges) {this.edges = edges;}
}

/*** @author jeb_lin* 22:27 2023/11/29*/
public class Edge {public Node from;public Node to;public int weight;public Edge(Node from, Node to, int weight) {this.weight = weight;this.from = from;this.to = to;}// 复写下面这俩,是为了放入Set的时候能正确去重@Overridepublic boolean equals(Object obj) {if (this == obj) {return true;}if (obj == null || !(obj instanceof Edge)) {return false;}Edge edge = (Edge) obj;return this.weight == edge.weight && Objects.equals(edge.from, this.from) && Objects.equals(edge.to, this.to);}@Overridepublic int hashCode() {return this.weight * this.from.hashCode() * this.to.hashCode();}public Node getFrom() {return from;}public void setFrom(Node from) {this.from = from;}public Node getTo() {return to;}public void setTo(Node to) {this.to = to;}public int getWeight() {return weight;}public void setWeight(int weight) {this.weight = weight;}
}

/*** @author jeb_lin* 22:26 2023/11/29*/
public class Graph {public HashMap<Integer,Node> nodes; // 该图上面的所有Node,nodeVal -> Nodepublic HashSet<Edge> edges; // 该图上面的所有边public Graph(){this.nodes = new HashMap<>();this.edges = new HashSet<>();}public HashMap<Integer, Node> getNodes() {return nodes;}public void setNodes(HashMap<Integer, Node> nodes) {this.nodes = nodes;}public HashSet<Edge> getEdges() {return edges;}public void setEdges(HashSet<Edge> edges) {this.edges = edges;}
}

2、二维数组转化成图

012备注
0015Node0->Node1 ,weight=5
1123Node1->Node2 ,weight=3
2027Node0->Node2 ,weight=7

/*** 把二维数组转换成图* [*      [0,1,5], // 表示 node0 -> node1 ,weight = 5*      [1,2,3],*      [0,2,7]* ]** @param matrix* @return*/public static Graph createGraph(int[][] matrix) {Graph graph = new Graph();HashMap<Integer, Node> nodes = new HashMap<>(); // 该图上面的所有Node,nodeVal -> NodeHashSet<Edge> edges = new HashSet<>(); // 该图上面的所有边graph.setEdges(edges);graph.setNodes(nodes);for (int i = 0; i < matrix.length; i++) {int[] row = matrix[i];if (!nodes.containsKey(row[0])) {nodes.put(row[0], new Node(row[0]));}if (!nodes.containsKey(row[1])) {nodes.put(row[1], new Node(row[1]));}Node from = nodes.get(row[0]);Node to = nodes.get(row[1]);from.setOut(from.getOut() + 1);to.setIn(to.getIn() + 1);from.getNexts().add(to);Edge edgeTemp = new Edge(from, to, row[2]);from.getEdges().add(edgeTemp);if(!edges.contains(edgeTemp)){edges.add(edgeTemp);}}return graph;}public static void main(String[] args) {int[][] arr = {{0, 1, 5}, {1, 2, 3}, {0, 2, 7}};Graph graph = createGraph(arr);System.out.println("ok");}

http://www.sczhlp.com/news/111753/

相关文章:

  • 做音乐网站之前的准备企业所得税税率知多少
  • 广安网站开发做餐厅网站的需求分析
  • 北京网站seo排名优化网站的透明图片怎么做
  • 广州做网站专业公司通化网站优化
  • 景区网站建设案例重庆招聘网站有哪些
  • 广州新塘网站建设推广公司深圳市建筑设计研究总院有限公司
  • 网站编辑的岗位职责网站可以增加关键词吗
  • 天水市建设局网站公告在哪里找做网站的客户
  • seo站长综合查询漳州建设局网站
  • 网站开发项目推荐中国建设银行北京分行网站
  • 网站的产品中心怎么做做网站的流程分析-图灵吧
  • 顺德外贸网站建设二维码生成器免费版下载
  • 预约营销型网站建设专家张家口seo
  • 云企网站建设开发织梦确定网站风格
  • 杭州做网站哪家好旅游网站系统设计与开发
  • 东莞官方网站建设做网站还是订阅号
  • 宿迁环保局网站建设局德州网站建设哪一家好
  • 做网站的费用会计分录微信公众号链接的网站怎么做的
  • 网站建设步骤大全厦门 外贸商城网站建设
  • 网站开发交互原型标注图做男性服装的网站
  • .netcms网站管理系统常州做集装箱的公司
  • 深圳住房宝安和建设局网站用dreamwever做网站
  • 广州网站推广教程二级网站怎样被百度收录
  • 自有服务器 建网站惠州东莞网站建设价格
  • 怎样修改网站关键词哈尔滨建设工程批前公示
  • 域名到期网站360提示危险网站原因
  • 镇江网站建设工作室网站关键词搜索
  • 做网站教程免费外链网盘系统
  • 网站备案相机小制作简单又漂亮
  • 网站排名 各因素怎么建设一个购物网站