【问题标题】:Directed graph node neighbors有向图节点邻居
【发布时间】:2019-01-27 02:26:56
【问题描述】:

在有向图中,节点邻居的定义是什么?

更具体地说,在下图中,哪些节点被认为是节点 0 的邻居?

破解编码面试好像暗示1和2都是0的邻居,但是没有说清楚,网上也找不到合适的定义。

编辑:

我的困惑源于这段特定的段落:

在邻接矩阵表示中,您需要遍历所有节点以识别节点的邻居。

这似乎暗示 2 被认为是 0 的邻居,否则你只需要遍历 0 的行即可找到它的邻居。但它从来没有说清楚。

【问题讨论】:

  • 我同意你的观点,如果定义只要求 2 和 0 之间有一条边(不考虑方向),则 2 被视为 0 的邻居。但这是一个很好的问题:一个节点可以是不是它的邻居的节点的邻居吗?当然,邻接矩阵会将 2 标记为连接到 0,但也有 0 不连接到 2。我在快速搜索中没有找到明确的答案,所以我也很好奇。
  • 我不会那么介意。通常,在上下文中使用时总是会定义这些东西,然后再明确。当从上下文中不能直接清楚地看到时,人们会更具体地谈论传入和传出的邻居。或前任后继者等。

标签: algorithm data-structures graph


【解决方案1】:

在有向图中,“邻居”很少在没有限定的情况下使用(如果使用,至少有些人会认为这可能是一个错误)。通常你说的是外邻居(或外来邻居)——有一条边一个顶点的顶点,和内邻居(或外来邻居)——有一条边到的顶点 顶点。

同样,在无向图中你会谈到邻域,在有向图中你会谈到外向邻域或传入邻域。

【讨论】:

    【解决方案2】:

    在有向图中,每个有向边都有一个尾和一个头,分别是边离开和到达的地方,从而形成节点 N 的内邻居和外邻居。 边缘到达的所有节点,在 N 中离开,都是外邻居。一条边离开、到达 N 的所有节点都是近邻。

    节点 N 的外邻居是单链表中属于该元素 N 的所有节点,这些节点位于定义图的 ALR(邻接表表示)的数组(或哈希图)中。

    在邻接矩阵中,必须就是否每行放置尾节点和每列放置头节点达成一致,反之亦然。 (通常是不对称的)矩阵的主体包含定义输入或输出邻居的相关值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-02
      • 2016-03-30
      相关资源
      最近更新 更多