summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTimotej Lazar <timotej.lazar@araneo.org>2015-04-07 16:53:43 +0200
committerAleš Smodiš <aless@guru.si>2015-08-11 14:26:03 +0200
commita7ca40bfe1c3ca86e239574a01d958e4eba751ee (patch)
treeae57deb8b8de1c2db5e41938d2d602f93f03d50e
parentb203887ecb557a02f4df7c47c2f46ee5dedb140e (diff)
Add a couple of utility functions to Node
-rw-r--r--monkey/graph.py13
1 files changed, 13 insertions, 0 deletions
diff --git a/monkey/graph.py b/monkey/graph.py
index 3e1d3a2..cbe44f7 100644
--- a/monkey/graph.py
+++ b/monkey/graph.py
@@ -20,6 +20,19 @@ class Node(object):
target.ein.append(self)
return target
+ # Return a list of nodes in [self].
+ def preorder(self):
+ nodes = [self]
+ for n in self.eout:
+ nodes += n.preorder()
+ return nodes
+
+ # Return a one-line string representation of [self].
+ def __str__(self):
+ return '(' + str(self.data) + ' ' + \
+ ' '.join([str(c) if c.eout else '"'+str(c.data)+'"' for c in self.eout]) + \
+ ')'
+
def __repr__(self):
return str(self.data)