Dak*_*est 8 arrays algorithm graph
我正在尝试学习图结构和算法。从概念上讲,我理解 DFS、BFS,并且我可以通过提供图形来实现它们,但是传统上图形是如何组成的?
通常,我将它们视为以边为指针的节点列表、带有它们连接的节点的边列表或二维矩阵,其中 arr[node_a][node_b] 的交集是边的权重。
当涉及到从输入中实际构建它时,我不知道从哪里开始。
例如,当提供像(在线吃豆子问题)这样的 2d 网格时,您将如何构建图形,其中 P 是源节点,- 是树中的节点。
%%%%%%%%%%%%%%%%%%%%
%--------------%---%
%-%%-%%-%%-%%-%%-%-%
%--------P-------%-%
%%%%%%%%%%%%%%%%%%-%
%.-----------------%
%%%%%%%%%%%%%%%%%%%%
Run Code Online (Sandbox Code Playgroud)
或者,当提供邻接列表时,您将如何构建它?
我知道这可能是一个大问题,因为这个主题相当复杂。对文档的链接表示赞赏!我一直无法从介绍级别找到任何内容。
图形通常使用两种数据结构之一来存储:
每个人都有自己的空间和时间优势。
您必须将想要表示为图形的任何输入(例如,解析它)转换为上述数据结构之一。