scala-graph中的内部和外部节点和边

时间:2018-06-14 21:27:02

标签: scala graph scala-collections

我正在尝试在Scala中实现图形,但在Scala图中有一个内部和外部节点和边的概念。这是官方文档中关于外部和内部对象定义的内容:

  

外节点 -   外部节点存在于任何特定图形的上下文之外,并且必须由库用户提供。添加到图形时,它们将由相应的内部节点透明地包装。外部节点必须满足图的节点类型参数的上限,在上例中为Int。否则它们将被编译器拒绝。

     

内部节点 - 内部节点是绑定到特定图形的对象。他们   在图形实例化或添加节点时透明地创建   图表。内部节点是内部NodeT的实例,因此   术语,并正在实现InnerNodeLike接口。内部节点   充当相应外部节点的容器也提供了   丰富的图形功能,如diSuccessors或pathTo。内   因此,节点总是等于所包含的用户提供的外部节点   促进许多内部和外部节点的可互换性   的情况。请注意,NodeT是路径相关类型,例如g.NodeT   用g表示单个图形实例。

     

外边 - 类似地,外边缘存在于任何上下文之外   特定图表。通常它们将由图书馆用户提供   隐式边缘工厂方法如〜。添加到图表后,他们会   由相应的内边缘透明地包裹。外缘   必须满足图的边类型参数的上限,   在上面的例子中是UnDiEdge。否则他们将被拒绝   由编译器。请注意,UnDiEdge与UnDiEdge [Int]相反,   一个所谓的更高级的类型。外边缘类型必须来自   EdgeLike。

     

内边 - 最后,内边是绑定到特定图的对象。   它们在图形实例化或添加时透明创建   边缘到图形。内边缘是内部类EdgeT的实例   并正在实施InnerEdgeLike界面。内缘起作用   作为相应外边缘添加图的容器   功能。内边缘总是等于包含的,   用户提供的外边缘,从而促进内部的可互换性   和外边缘。请注意,EdgeT是一种路径依赖类型,例如   g.EdgeT用g表示单个图形实例。

我真的不明白这个概念,为了在Scala中执行任何进一步的图形实现很重要。任何人都可以通过使用Graph的示例来解释这一点吗?

以下是官方文档链接:Scala-Graph

0 个答案:

没有答案
相关问题