导入合格的代数。 图表。 非循环。 相邻地图为非循环
简介
数据 相邻地图 一 来自非循环 :: 相邻地图 a-> 相邻地图 一 空的 :: 相邻地图 一 顶点 ::a-> 相邻地图 一 顶点 :: 订单 a=>【a】-> 相邻地图 一 联盟 :: ( 订单 a、, 订单 b) => 相邻地图 a-> 相邻地图 b-> 相邻地图 ( 要么 a b) 参加 :: ( 订单 a、, 订单 b) => 相邻地图 a-> 相邻地图 b-> 相邻地图 ( 要么 a b) 是SubgraphOf :: 订单 a=> 相邻地图 a-> 相邻地图 a-> 布尔 栈空 :: 相邻地图 a-> 布尔 hasVertex公司 :: 订单 a=>a-> 相邻地图 a-> 布尔 hasEdge公司 :: 订单 a=>a->a-> 相邻地图 a-> 布尔 顶点计数 :: 相邻地图 a-> 国际 边缘计数 :: 相邻地图 a-> 国际 顶点列表 :: 相邻地图 a->[a] 边缘列表 :: 相邻地图 a->[(a,a)] 邻接列表 :: 相邻地图 a->[(a,[a])] 顶点集 :: 相邻地图 a-> 设置 一 边缘设置 :: 等式 a=> 相邻地图 a-> 设置 (a,a) 预设 :: 订单 a=>a-> 相邻地图 a-> 设置 一 postSet(postSet) :: 订单 a=>a-> 相邻地图 a-> 设置 一 移除顶点 :: 订单 a=>a-> 相邻地图 a-> 相邻地图 一 删除边缘 :: 订单 a=>a->a-> 相邻地图 a-> 相邻地图 一 转置 :: 订单 a=> 相邻地图 a-> 相邻地图 一 诱导 ::(a-> 布尔 ) -> 相邻地图 a-> 相邻地图 一 诱导Just :: 订单 a=> 相邻地图 ( 也许 吧 a) -> 相邻地图 一 箱 :: ( 订单 a、, 订单 b) => 相邻地图 a-> 相邻地图 b-> 相邻地图 (a、b) 传递闭包 :: 订单 a=> 相邻地图 a-> 相邻地图 一 top排序 :: 订单 a=> 相邻地图 a->[a] 供应链控制 :: 订单 a=> 相邻地图 a-> 相邻地图 ( 相邻地图 a) 至非循环 :: 订单 a=> 相邻地图 a-> 也许 吧 ( 相邻地图 a) 到非循环订单 :: 订单 a=> 相邻地图 a-> 相邻地图 一 收缩 :: 订单 a=> 相邻地图 a-> 相邻地图 一 一致的 :: 订单 a=> 相邻地图 a-> 布尔
数据结构
show empty==“空” 显示(收缩1)==“顶点1” 显示(收缩$1+2)==“顶点[1,2]” show(收缩$1*2)==“(fromJust.toAcyclic)(边缘12)” show(收缩$1*2*3)==“(fromJust.toAcyclic)(边[(1,2),(1,3),(2,3)]” show(收缩$1*2+3)==“(fromJust.toAcyclic)(覆盖(顶点3)(边1 2)”
比较顶点数。 如果出现平局,请继续。 比较顶点集。 如果出现平局,请继续。 比较边的数量。 如果出现平局,请继续。 比较边缘集。
是SubgraphOf x y==>x<=y
基本图构造基元
图上的关系
图形属性
图形转换
诱导(
常数 真)x==x 诱导(
常数 假)x==
空的 诱导(/=x)==
移除顶点 x个 诱导p。 诱导q==诱导(x->px&&qx)
是SubgraphOf (诱导px)x==真
图形组成
边缘列表 (盒子(
收缩 $ 1 * 2) (
收缩 $ 10 * 20)) == [ ((1,10), (1,20)) , ((1,10), (2,10)) , ((1,20), (2,20)) , ((2,10), (2,20)) ]
框x y ~~框y x 盒子x(盒子yz)~~盒子(盒子xy)z 方框x(
顶点 ()~~x 方框x
空的 ~~
空的
转置 (方框x y)==方框(
转置 x)(
转置 年)
顶点计数 (方框x y)==
顶点计数 x个*
顶点计数 年
边缘计数 (方框x y)<=
顶点计数 x个*
边缘计数 年+
边缘计数 x个*
顶点计数 年