Skip to content

Commit ba0420c

Browse files
committed
Add for_each_predecessor() to grapht
1 parent 26f9de7 commit ba0420c

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

src/util/graph.h

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -315,6 +315,9 @@ class grapht
315315
std::vector<node_indext> get_predecessors(const node_indext &n) const;
316316
std::vector<node_indext> get_successors(const node_indext &n) const;
317317
void output_dot(std::ostream &out) const;
318+
void for_each_predecessor(
319+
const node_indext &n,
320+
std::function<void(const node_indext &)> f) const;
318321
void for_each_successor(
319322
const node_indext &n,
320323
std::function<void(const node_indext &)> f) const;
@@ -961,6 +964,17 @@ grapht<N>::get_successors(const node_indext &n) const
961964
return result;
962965
}
963966

967+
template <class N>
968+
void grapht<N>::for_each_predecessor(
969+
const node_indext &n,
970+
std::function<void(const node_indext &)> f) const
971+
{
972+
std::for_each(
973+
nodes[n].in.begin(),
974+
nodes[n].in.end(),
975+
[&](const std::pair<node_indext, edget> &edge) { f(edge.first); });
976+
}
977+
964978
template <class N>
965979
void grapht<N>::for_each_successor(
966980
const node_indext &n,

0 commit comments

Comments
 (0)