GNN:图结构的表示方法【邻接矩阵:每行数据表示一个节点与图中其他各个节点的相邻情况的ont-hot编码拼接上该节点的属性one-hot编码(二维数组结构)(稀疏,高维)】【邻接表(链表结构)】

微博、微信、LinkedIn 这些社交软件我想你肯定都玩过吧。在微博中,两个人可以互相关注;在微信中,两个人可以互加好友。那你知道,如何存储微博、微信等这些社交网络的好友关系吗?

这就要用到我们今天要讲的这种数据结构:图。实际上,涉及图的算法有很多,也非常复杂,比如图的搜索、最短路径、最小生成树、二分图等等。我们今天聚焦在图存储这一方面,后面会分好几节来依次讲解图相关的算法。

一、概述

我们前面讲过了树这种非线性表数据结构,今天我们要讲另一种非线性表数据结构,图(Graph)。和树比起来,这是一种更加复杂的非线性表结构。

我们知道,树中的元素我们称为节点,图中的元素我们就叫做顶点(vertex)。从我画的图中可以看出来,图中的一个顶点可以与任意其他顶点建立连接关系。我们把这种建立的关系叫做边(edge)。

GNN:图结构的表示方法【邻接矩阵:每行数据表示一个节点与图中其他各个节点的相邻情况的ont-hot编码拼接上该节点的属性one-hot编码(二维数组结构)(稀疏,高维)】【邻接表(链表结构)】_第1张图片
我们生活中就有很多符合图这种结构的例子。比如,开篇问题中讲到的社交网络,就是一个非常典型的图结构。

我们就拿微信举例子吧。我们可以把每个用户看作一个顶点。如果两个用户之间互加好友,那就在两者之间建立一条边。所以,整个微信的好友关系就可以用一张图来表示。其中,每个用户有多

你可能感兴趣的:(图神经网络/GNN,链表,数据结构,图的表示方法,邻接矩阵,邻接表)