Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 是否可以在不存储节点索引的情况下为图构造邻接矩阵_C_File_Indexing_Graph_Adjacency Matrix - Fatal编程技术网

C 是否可以在不存储节点索引的情况下为图构造邻接矩阵

C 是否可以在不存储节点索引的情况下为图构造邻接矩阵,c,file,indexing,graph,adjacency-matrix,C,File,Indexing,Graph,Adjacency Matrix,我已经通过存储每个节点的索引实现了该解决方案,但是是否可以在没有索引的情况下使用它?我的任务是实现一个类似bloxrolz的游戏。在我将要向您展示的示例中,我不知道如何编写代码来检查两个节点是否相邻 这只是游戏的一个随机场。从文件读取时,我将每个字符存储在一个链表中,带有x、y坐标和ID(如果字符不是“-”)。只有那些不是“-”的节点才会存储在邻接矩阵中,因为它们代表操场,“-”是可以更改为“-”的节点 我成功地实现了一个解决方案,但我不确定它是否合法。你能帮我弄清楚没有索引怎么做吗 根据定

我已经通过存储每个节点的索引实现了该解决方案,但是是否可以在没有索引的情况下使用它?我的任务是实现一个类似bloxrolz的游戏。在我将要向您展示的示例中,我不知道如何编写代码来检查两个节点是否相邻

这只是游戏的一个随机场。从文件读取时,我将每个字符存储在一个链表中,带有x、y坐标和ID(如果字符不是“-”)。只有那些不是“-”的节点才会存储在邻接矩阵中,因为它们代表操场,“-”是可以更改为“-”的节点

我成功地实现了一个解决方案,但我不确定它是否合法。你能帮我弄清楚没有索引怎么做吗


根据定义,邻接矩阵是一个正方形矩阵,其中每个节点由一行和一列表示。如果第i行和第j列的条目为
1
(或您选择的某个值),则这两个节点在图中是连接的。因此,您需要某种方法将行和列映射到节点,反之亦然。将节点放入列表并在列表中使用每个节点的索引是一种方法,但这不是唯一的方法。您可以给每个节点一个ID号,只要每个节点的ID是唯一的并且在矩阵的范围内,就可以使用该ID号。您可以在每行和每列的开头或结尾存储指向相应节点的指针。简言之,任何允许您在给定的一对节点的矩阵中查找条目的方法都已足够


也就是说,因为您讨论的是行和列的有序列表,所以您选择的任何方法都类似于将节点放在列表中并使用列表中节点的索引。仔细想想你实际要解决的问题。

根据定义,邻接矩阵是一个正方形矩阵,其中每个节点由一行和一列表示。如果第i行和第j列的条目为
1
(或您选择的某个值),则这两个节点在图中是连接的。因此,您需要某种方法将行和列映射到节点,反之亦然。将节点放入列表并在列表中使用每个节点的索引是一种方法,但这不是唯一的方法。您可以给每个节点一个ID号,只要每个节点的ID是唯一的并且在矩阵的范围内,就可以使用该ID号。您可以在每行和每列的开头或结尾存储指向相应节点的指针。简言之,任何允许您在给定的一对节点的矩阵中查找条目的方法都已足够


也就是说,因为您讨论的是行和列的有序列表,所以您选择的任何方法都类似于将节点放在列表中并使用列表中节点的索引。仔细想想你实际上要解决的问题。

邻接矩阵定义为一个没有任何索引的二进制矩阵。你可能想通过展示一些代码来澄清你的问题。@EugeneSh。你不明白我的意思。我知道什么是形容词。矩阵是。我需要创建一个邻接矩阵,而不需要关于图中节点坐标的信息。你说的“节点索引”是什么意思?请展示一些代码来说明。“…我不确定它是否合法。”如果它有效,那么它就是合法的。图片中没有代码!!根据定义,邻接矩阵是一个没有任何索引的二进制矩阵。您可能想通过显示一些代码来澄清您的问题。@EugeneSh。你不明白我的意思。我知道什么是形容词。矩阵是。我需要创建一个邻接矩阵,而不需要关于图中节点坐标的信息。你说的“节点索引”是什么意思?请展示一些代码来说明。“…我不确定它是否合法。”如果它有效,那么它就是合法的。图片中没有代码!!请注意,使用“矩阵”的适当数据结构,您可以使用
(x,y)
对作为“节点标签”
i
j
。请注意,使用“矩阵”的适当数据结构,您可以使用
(x,y)
对作为“节点标签”
i
j