当前位置:   article > 正文

数据结构===图

数据结构===图

概要

图是一种复杂的数据结构

图包括顶点,边。图的分类有无向图,有向图,带权图。

按照存储有邻接矩阵,邻接表。

图的组成

图有顶点和边组成。

图有顶点,边。

无向图

对于无向图来说,还有个概念,叫做度。就是边的条数。有顶点,有边,就构成了一个图。

有向图

对于有向图来说,度有方向,分为入度和出度。顶点,边,入度,出度,构成了一个有向图。

带权图

对于带权图来说,有个概念,每条边有个权重。

存储

怎么来存储图这种数据结构呢?这就有邻接矩阵和邻接表。

邻接矩阵

邻接矩阵是一种使用二维数组来表示图的方法,其中的元素表示两个顶点之间是否有边。在加权图中,矩阵中的元素可以表示边的权重。

邻接表

在这种表示方法中,每个顶点都关联一个列表,这个列表存储了所有与该顶点直接相连的其他顶点。在加权图中,这个列表中的元素可以是顶点对,或者包含顶点和权重的元组。

图的代码

public class Graph { // 无向图
  private int v; // 顶点的个数
  private LinkedList<Integer> adj[]; // 邻接表

  public Graph(int v) {
    this.v = v;
    adj = new LinkedList[v];
    for (int i=0; i<v; ++i) {
      adj[i] = new LinkedList<>();
    }
  }

  public void addEdge(int s, int t) { // 无向图一条边存两次
    adj[s].add(t);
    adj[t].add(s);
  }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

小结

图这个数据结构

本篇主要记录了跟图有关的概念,比如,顶点,边。无向图,有向图,带权图;邻接矩阵,邻接表。基本上就这么多吧。跟图相关的概念。接下来可以聊聊跟图相关的算法了。像深度优先,广度优先;当然还有些其他的应用,最短路径,生成最小树,朋友圈好友等等。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/570423
推荐阅读
相关标签
  

闽ICP备14008679号