improve graphs a bit.
git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@2285 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
This commit is contained in:
@@ -13,6 +13,8 @@
|
||||
wundgraph_edges/2,
|
||||
wundgraph_neighbors/3,
|
||||
wundgraph_neighbours/3,
|
||||
wundgraph_wneighbors/3,
|
||||
wundgraph_wneighbours/3,
|
||||
wdgraph_to_wundgraph/2,
|
||||
wundgraph_to_undgraph/2,
|
||||
wundgraph_min_tree/3,
|
||||
@@ -32,7 +34,9 @@
|
||||
wdgraph_min_path/5 as wundgraph_min_path,
|
||||
wdgraph_min_paths/3 as wundgraph_min_paths,
|
||||
wdgraph_max_path/5 as wundgraph_max_path,
|
||||
wdgraph_path/3 as wundgraph_path]).
|
||||
wdgraph_path/3 as wundgraph_path,
|
||||
wdgraph_reachable/3 as wundgraph_reachable
|
||||
]).
|
||||
|
||||
:- use_module( library(wdgraphs),
|
||||
[
|
||||
@@ -95,6 +99,25 @@ wundgraph_neighbours(V,Vertices,Children) :-
|
||||
).
|
||||
wundgraph_neighbors(V,Vertices,Children) :-
|
||||
wdgraph_neighbors(V,Vertices,Children0),
|
||||
(
|
||||
wdel_me(Children0,V,Children)
|
||||
->
|
||||
true
|
||||
;
|
||||
Children = Children0
|
||||
).
|
||||
|
||||
wundgraph_wneighbours(V,Vertices,Children) :-
|
||||
wdgraph_wneighbours(V,Vertices,Children0),
|
||||
(
|
||||
wdel_me(Children0,V,Children)
|
||||
->
|
||||
true
|
||||
;
|
||||
Children = Children0
|
||||
).
|
||||
wundgraph_wneighbors(V,Vertices,Children) :-
|
||||
wdgraph_wneighbors(V,Vertices,Children0),
|
||||
(
|
||||
del_me(Children0,V,Children)
|
||||
->
|
||||
@@ -104,7 +127,7 @@ wundgraph_neighbors(V,Vertices,Children) :-
|
||||
).
|
||||
|
||||
del_me([], _, []).
|
||||
del_me([K-_|Children], K1, NewChildren) :-
|
||||
del_me([K|Children], K1, NewChildren) :-
|
||||
( K == K1 ->
|
||||
Children = NewChildren
|
||||
;
|
||||
@@ -116,6 +139,19 @@ del_me([K-_|Children], K1, NewChildren) :-
|
||||
compact(Children, MoreChildren)
|
||||
).
|
||||
|
||||
wdel_me([], _, []).
|
||||
wdel_me([K-A|Children], K1, NewChildren) :-
|
||||
( K == K1 ->
|
||||
Children = NewChildren
|
||||
;
|
||||
K @< K1 ->
|
||||
NewChildren = [K-A|ChildrenLeft],
|
||||
wdel_me(Children, K1, ChildrenLeft)
|
||||
;
|
||||
NewChildren = [K-A|MoreChildren],
|
||||
compact(Children, MoreChildren)
|
||||
).
|
||||
|
||||
wundgraph_del_edge(Vs0,V1,V2,K,VsF) :-
|
||||
wdgraph_del_edge(Vs0,V1,V2,K,Vs1),
|
||||
wdgraph_del_edge(Vs1,V2,V1,K,VsF).
|
||||
|
Reference in New Issue
Block a user