数据结构===图

简介: 数据结构===图

概要

图是一种复杂的数据结构

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

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

图的组成

图有顶点和边组成。

图有顶点,边。

无向图

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

有向图

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

带权图

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

存储

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

邻接矩阵

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

邻接表

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

图的代码

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);
  }
}

小结

图这个数据结构

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

相关文章
|
6月前
|
存储 算法 Go
Golang 数据结构:图
Golang 数据结构:图
89 0
|
4月前
|
算法 Python
逆袭之路!用 Python 玩转图的 DFS 与 BFS,让数据结构难题无处遁形
【7月更文挑战第12天】图的遍历利器:DFS 和 BFS。Python 中,图可表示为邻接表或矩阵。DFS 沿路径深入,回溯时遍历所有可达顶点,适合找路径和环。BFS 层次遍历,先近后远,解决最短路径问题。两者在迷宫、网络路由等场景各显神通。通过练习,掌握这些算法,图处理将游刃有余。
64 3
|
4月前
|
存储 算法 Python
“解锁Python高级数据结构新姿势:图的表示与遍历,让你的算法思维跃升新高度
【7月更文挑战第13天】Python中的图数据结构用于表示复杂关系,通过节点和边连接。常见的表示方法是邻接矩阵(适合稠密图)和邻接表(适合稀疏图)。图遍历包括DFS(深度优先搜索)和BFS(广度优先搜索):DFS深入探索分支,BFS逐层访问邻居。掌握这些技巧对优化算法和解决实际问题至关重要。**
40 1
|
5月前
|
存储
数据结构学习记录——如何建立图(邻接矩阵、邻接表-图节点的结构、创建并初始化、插入变、完整图的建立)
数据结构学习记录——如何建立图(邻接矩阵、邻接表-图节点的结构、创建并初始化、插入变、完整图的建立)
69 0
|
5月前
|
存储 算法
数据结构学习记录——图应用实例-六度空间(题目描述、算法思路、伪代码及解读、图解)
数据结构学习记录——图应用实例-六度空间(题目描述、算法思路、伪代码及解读、图解)
57 0
|
5月前
|
存储 算法 安全
数据结构学习记录——图应用实例-拯救007(问题描述、解题思路、伪代码解读、C语言算法实现)
数据结构学习记录——图应用实例-拯救007(问题描述、解题思路、伪代码解读、C语言算法实现)
39 0
|
5月前
|
存储 C语言
数据结构学习记录——图的遍历(深度优先搜索、广度优先搜索、为什么需要两种遍历、图不连通怎么办)
数据结构学习记录——图的遍历(深度优先搜索、广度优先搜索、为什么需要两种遍历、图不连通怎么办)
59 0
|
5月前
|
存储 机器学习/深度学习
数据结构学习记录——什么是图(抽象数据类型定义、常见术语、邻接矩阵表示法、邻接表表示法)
数据结构学习记录——什么是图(抽象数据类型定义、常见术语、邻接矩阵表示法、邻接表表示法)
63 0
|
6月前
|
算法
【高阶数据结构】图 -- 详解(下)
【高阶数据结构】图 -- 详解(下)
|
6月前
|
存储
【高阶数据结构】图 -- 详解(上)
【高阶数据结构】图 -- 详解(上)