@@ -187,7 +187,7 @@ def pre_order_traversal_iter(self):
187187 sage: v = BinaryTree([u, u])
188188 sage: w = BinaryTree([v, v])
189189 sage: t = BinaryTree([w, w])
190- sage: t.node_number ()
190+ sage: t.number_of_nodes ()
191191 7
192192 sage: l = [1 for i in t.pre_order_traversal_iter()]
193193 sage: len(l)
@@ -259,7 +259,7 @@ def iterative_pre_order_traversal(self, action=None):
259259 sage: v = BinaryTree([u, u])
260260 sage: w = BinaryTree([v, v])
261261 sage: t = BinaryTree([w, w])
262- sage: t.node_number ()
262+ sage: t.number_of_nodes ()
263263 7
264264 sage: l = []
265265 sage: t.iterative_pre_order_traversal(lambda node: l.append(1))
@@ -376,7 +376,7 @@ def pre_order_traversal(self, action=None):
376376 sage: v = BinaryTree([u, u])
377377 sage: w = BinaryTree([v, v])
378378 sage: t = BinaryTree([w, w])
379- sage: t.node_number ()
379+ sage: t.number_of_nodes ()
380380 7
381381 sage: l = []
382382 sage: t.pre_order_traversal(lambda node: l.append(1))
@@ -471,7 +471,7 @@ def post_order_traversal_iter(self):
471471 sage: v = BinaryTree([u, u])
472472 sage: w = BinaryTree([v, v])
473473 sage: t = BinaryTree([w, w])
474- sage: t.node_number ()
474+ sage: t.number_of_nodes ()
475475 7
476476 sage: l = [1 for i in t.post_order_traversal_iter()]
477477 sage: len(l)
@@ -543,7 +543,7 @@ def post_order_traversal(self, action=None):
543543 sage: v = BinaryTree([u, u])
544544 sage: w = BinaryTree([v, v])
545545 sage: t = BinaryTree([w, w])
546- sage: t.node_number ()
546+ sage: t.number_of_nodes ()
547547 7
548548 sage: l = []
549549 sage: t.post_order_traversal(lambda node: l.append(1))
@@ -617,7 +617,7 @@ def iterative_post_order_traversal(self, action=None):
617617 sage: v = BinaryTree([u, u])
618618 sage: w = BinaryTree([v, v])
619619 sage: t = BinaryTree([w, w])
620- sage: t.node_number ()
620+ sage: t.number_of_nodes ()
621621 7
622622 sage: l = []
623623 sage: t.iterative_post_order_traversal(lambda node: l.append(1))
@@ -710,7 +710,7 @@ def contour_traversal(self, first_action=None, middle_action=None, final_action=
710710 sage: v = BinaryTree([u, u])
711711 sage: w = BinaryTree([v, v])
712712 sage: t = BinaryTree([w, w])
713- sage: t.node_number ()
713+ sage: t.number_of_nodes ()
714714 7
715715 sage: l = []
716716 sage: t.contour_traversal(first_action = lambda node: l.append(0))
@@ -852,7 +852,7 @@ def paths_at_depth(self, depth, path=[]):
852852
853853 .. SEEALSO::
854854
855- :meth:`paths`, :meth:`paths_to_the_right`, :meth:`node_number_at_depth `
855+ :meth:`paths`, :meth:`paths_to_the_right`, :meth:`number_of_nodes_at_depth `
856856
857857 EXAMPLES::
858858
@@ -886,7 +886,7 @@ def paths_at_depth(self, depth, path=[]):
886886 for i in range (len (self )):
887887 yield from self [i ].paths_at_depth (depth - 1 , path + [i ])
888888
889- def node_number_at_depth (self , depth ):
889+ def number_of_nodes_at_depth (self , depth ):
890890 r"""
891891 Return the number of nodes at a given depth.
892892
@@ -900,7 +900,8 @@ def node_number_at_depth(self, depth):
900900
901901 .. SEEALSO::
902902
903- :meth:`node_number`, :meth:`node_number_to_the_right`, :meth:`paths_at_depth`
903+ :meth:`number_of_nodes`, :meth:`number_of_nodes_to_the_right`,
904+ :meth:`paths_at_depth`
904905
905906 EXAMPLES::
906907
@@ -915,7 +916,7 @@ def node_number_at_depth(self, depth):
915916 o o
916917 |
917918 o
918- sage: [T.node_number_at_depth (i) for i in range(6)]
919+ sage: [T.number_of_nodes_at_depth (i) for i in range(6)]
919920 [1, 3, 4, 2, 1, 0]
920921
921922 TESTS:
@@ -927,15 +928,15 @@ def node_number_at_depth(self, depth):
927928 .
928929 sage: T.is_empty()
929930 True
930- sage: [T.node_number_at_depth (i) for i in range(3)]
931+ sage: [T.number_of_nodes_at_depth (i) for i in range(3)]
931932 [0, 0, 0]
932933
933934 Check that we do not hit a recursion limit::
934935
935936 sage: T = OrderedTree([])
936937 sage: for _ in range(9999):
937938 ....: T = OrderedTree([T])
938- sage: T.node_number_at_depth (2000)
939+ sage: T.number_of_nodes_at_depth (2000)
939940 1
940941 """
941942 if self .is_empty ():
@@ -965,6 +966,8 @@ def lf_action(node):
965966 self .contour_traversal (fr_action , m_action , fn_action , lf_action )
966967 return Integer (m )
967968
969+ node_number_at_depth = number_of_nodes_at_depth
970+
968971 def paths_to_the_right (self , path ):
969972 r"""
970973 Return a generator of paths for all nodes at the same
@@ -979,7 +982,7 @@ def paths_to_the_right(self, path):
979982
980983 .. SEEALSO::
981984
982- :meth:`paths`, :meth:`paths_at_depth`, :meth:`node_number_to_the_right `
985+ :meth:`paths`, :meth:`paths_at_depth`, :meth:`number_of_nodes_to_the_right `
983986
984987 EXAMPLES::
985988
@@ -1023,7 +1026,7 @@ def paths_to_the_right(self, path):
10231026 for p in self [path [0 ]].paths_to_the_right (path [1 :]):
10241027 yield tuple ([path [0 ]] + list (p ))
10251028
1026- def node_number_to_the_right (self , path ):
1029+ def number_of_nodes_to_the_right (self , path ):
10271030 r"""
10281031 Return the number of nodes at the same depth and to the right of
10291032 the node identified by ``path``.
@@ -1033,7 +1036,8 @@ def node_number_to_the_right(self, path):
10331036
10341037 .. SEEALSO::
10351038
1036- :meth:`node_number`, :meth:`node_number_at_depth`, :meth:`paths_to_the_right`
1039+ :meth:`number_of_nodes`, :meth:`number_of_nodes_at_depth`,
1040+ :meth:`paths_to_the_right`
10371041
10381042 EXAMPLES::
10391043
@@ -1048,28 +1052,30 @@ def node_number_to_the_right(self, path):
10481052 o o
10491053 |
10501054 o
1051- sage: T.node_number_to_the_right (())
1055+ sage: T.number_of_nodes_to_the_right (())
10521056 0
1053- sage: T.node_number_to_the_right ((0,))
1057+ sage: T.number_of_nodes_to_the_right ((0,))
10541058 2
1055- sage: T.node_number_to_the_right ((0,1))
1059+ sage: T.number_of_nodes_to_the_right ((0,1))
10561060 2
1057- sage: T.node_number_to_the_right ((0,1,0))
1061+ sage: T.number_of_nodes_to_the_right ((0,1,0))
10581062 1
10591063
10601064 sage: T = OrderedTree([])
1061- sage: T.node_number_to_the_right (())
1065+ sage: T.number_of_nodes_to_the_right (())
10621066 0
10631067 """
10641068 depth = len (path )
10651069 if depth == 0 :
10661070 return Integer (0 )
1067- result = sum (son .node_number_at_depth (depth - 1 )
1071+ result = sum (son .number_of_nodes_at_depth (depth - 1 )
10681072 for son in self [path [0 ] + 1 :])
10691073 if path [0 ] < len (self ) and path [0 ] >= 0 :
1070- result += self [path [0 ]].node_number_to_the_right (path [1 :])
1074+ result += self [path [0 ]].number_of_nodes_to_the_right (path [1 :])
10711075 return result
10721076
1077+ node_number_to_the_right = number_of_nodes_to_the_right
1078+
10731079 def subtrees (self ):
10741080 """
10751081 Return a generator for all nonempty subtrees of ``self``.
@@ -1099,12 +1105,12 @@ def subtrees(self):
10991105 TESTS::
11001106
11011107 sage: t = OrderedTree([[], [[], [[], []], [[], []]], [[], []]])
1102- sage: t.node_number () == len(list(t.subtrees()))
1108+ sage: t.number_of_nodes () == len(list(t.subtrees()))
11031109 True
11041110 sage: list(BinaryTree().subtrees())
11051111 []
11061112 sage: bt = BinaryTree([[],[[],[]]])
1107- sage: bt.node_number () == len(list(bt.subtrees()))
1113+ sage: bt.number_of_nodes () == len(list(bt.subtrees()))
11081114 True
11091115 """
11101116 return self .pre_order_traversal_iter ()
@@ -1142,12 +1148,12 @@ def paths(self):
11421148 TESTS::
11431149
11441150 sage: t = OrderedTree([[], [[], [[], []], [[], []]], [[], []]])
1145- sage: t.node_number () == len(list(t.paths()))
1151+ sage: t.number_of_nodes () == len(list(t.paths()))
11461152 True
11471153 sage: list(BinaryTree().paths())
11481154 []
11491155 sage: bt = BinaryTree([[],[[],[]]])
1150- sage: bt.node_number () == len(list(bt.paths()))
1156+ sage: bt.number_of_nodes () == len(list(bt.paths()))
11511157 True
11521158 """
11531159 if not self .is_empty ():
@@ -1156,36 +1162,36 @@ def paths(self):
11561162 for p in t .paths ():
11571163 yield (i ,) + p
11581164
1159- def node_number (self ):
1165+ def number_of_nodes (self ):
11601166 """
11611167 Return the number of nodes of ``self``.
11621168
11631169 .. SEEALSO::
11641170
1165- :meth:`node_number_at_depth `, :meth:`node_number_to_the_right `
1171+ :meth:`number_of_nodes_at_depth `, :meth:`number_of_nodes_to_the_right `
11661172
11671173 EXAMPLES::
11681174
1169- sage: OrderedTree().node_number ()
1175+ sage: OrderedTree().number_of_nodes ()
11701176 1
1171- sage: OrderedTree([]).node_number ()
1177+ sage: OrderedTree([]).number_of_nodes ()
11721178 1
1173- sage: OrderedTree([[],[]]).node_number ()
1179+ sage: OrderedTree([[],[]]).number_of_nodes ()
11741180 3
1175- sage: OrderedTree([[],[[]]]).node_number ()
1181+ sage: OrderedTree([[],[[]]]).number_of_nodes ()
11761182 4
1177- sage: OrderedTree([[], [[], [[], []], [[], []]], [[], []]]).node_number ()
1183+ sage: OrderedTree([[], [[], [[], []], [[], []]], [[], []]]).number_of_nodes ()
11781184 13
11791185
11801186 EXAMPLES::
11811187
1182- sage: BinaryTree(None).node_number ()
1188+ sage: BinaryTree(None).number_of_nodes ()
11831189 0
1184- sage: BinaryTree([]).node_number ()
1190+ sage: BinaryTree([]).number_of_nodes ()
11851191 1
1186- sage: BinaryTree([[], None]).node_number ()
1192+ sage: BinaryTree([[], None]).number_of_nodes ()
11871193 2
1188- sage: BinaryTree([[None, [[], []]], None]).node_number ()
1194+ sage: BinaryTree([[None, [[], []]], None]).number_of_nodes ()
11891195 5
11901196
11911197 TESTS:
@@ -1195,7 +1201,7 @@ def node_number(self):
11951201 sage: T = OrderedTree([])
11961202 sage: for _ in range(9999):
11971203 ....: T = OrderedTree([T])
1198- sage: T.node_number ()
1204+ sage: T.number_of_nodes ()
11991205 10000
12001206 """
12011207 # An attribute _node_number for storing the number of nodes
@@ -1221,6 +1227,8 @@ def count(node):
12211227 self .iterative_post_order_traversal (count )
12221228 return self ._node_number
12231229
1230+ node_number = number_of_nodes
1231+
12241232 def depth (self ):
12251233 """
12261234 Return the depth of ``self``.
@@ -1581,7 +1589,7 @@ def to_hexacode(self):
15811589 """
15821590 if len (self ) > 15 :
15831591 raise ValueError ("the width of the tree is too large" )
1584- if self .node_number () == 1 :
1592+ if self .number_of_nodes () == 1 :
15851593 return "0"
15861594 return ("%x" % len (self )) + "" .join (u .to_hexacode () for u in self )
15871595
@@ -1609,7 +1617,7 @@ def tree_factorial(self):
16091617 sage: BinaryTree().tree_factorial()
16101618 1
16111619 """
1612- nb = self .node_number ()
1620+ nb = self .number_of_nodes ()
16131621 if nb <= 1 :
16141622 return Integer (1 )
16151623 return nb * prod (s .tree_factorial () for s in self )
@@ -2409,7 +2417,7 @@ def leaf_labels(self):
24092417 sage: LBT(None).leaf_labels()
24102418 []
24112419 """
2412- return [t .label () for t in self .subtrees () if t .node_number () == 1 ]
2420+ return [t .label () for t in self .subtrees () if t .number_of_nodes () == 1 ]
24132421
24142422 def __eq__ (self , other ):
24152423 """
0 commit comments