Skip to content

BoundaryNodes ​

The number of nodes on the left spine or the right spine, the root counted once.

✓ checked against that system · ! checked, with disagreements (hover a chip)FindStatSt000203via BinaryTree✓
BoundaryNodes(tree)The number of nodes on the left spine or the right spine, the root counted once.
Typed signatures
TypePackageApplies
(binary_tree) -> numbercombinatoricsalways

Domain: Tree statistics

Details
  • Defined over BinaryTree as an expression in _x, evaluated by compute-engine — the definition IS the implementation.
  • Takes a BinaryTree and nothing else — it reads values against their positions, or walks the orbits, so it needs the bijection. Applying it to a bare list is a type error, not a wrong answer.
  • FindStat calls these the external nodes; the name stays off the empty subtrees, which are Knuth's.

Definition

Epsil, as the implementation runs it.

on BinaryTree, over _x

0 if _x in Integers else Apply(
                                Function(
                                          0 if t in Integers else 1 + self(
                                                                            self,
                                                                            t[1],
                                                                          ),
                                          self,
                                          t,
                                        ),
                                Function(
                                          0 if t in Integers else 1 + self(
                                                                            self,
                                                                            t[1],
                                                                          ),
                                          self,
                                          t,
                                        ),
                                _x,
                              ) + Apply(
                                        Function(
                                                  0 if t in Integers else 1 +
                                                                          self(self, t[2]),
                                                  self,
                                                  t,
                                                ),
                                        Function(
                                                  0 if t in Integers else 1 +
                                                                          self(self, t[2]),
                                                  self,
                                                  t,
                                                ),
                                        _x,
                                      ) - 1

Examples

Basic #

the binary tree [[.,.],[[.,.],.]][[.,.],[[.,.],.]]

live ↗
InBoundaryNodes(BinaryTree⁡([[0,0],[[0,0],0]]))\mathrm{BoundaryNodes}({\operatorname{BinaryTree}}(\bigl\lbrack\bigl\lbrack0, 0\bigr\rbrack, \bigl\lbrack\bigl\lbrack0, 0\bigr\rbrack, 0\bigr\rbrack\bigr\rbrack))Out33
Properties #

FindStat's value for [.,.]

live ↗
InCombinatorialStat(BinaryTree⁡([0,0]),BoundaryNodes)\mathrm{CombinatorialStat}({\operatorname{BinaryTree}}(\bigl\lbrack0, 0\bigr\rbrack), \text{BoundaryNodes})Out11

Known value · FindStat St000203

FindStat's value for [.,[.,.]]

live ↗
InCombinatorialStat(BinaryTree⁡([0,[0,0]]),BoundaryNodes)\mathrm{CombinatorialStat}({\operatorname{BinaryTree}}(\bigl\lbrack0, \bigl\lbrack0, 0\bigr\rbrack\bigr\rbrack), \text{BoundaryNodes})Out22

Known value · FindStat St000203

FindStat's value for [[.,.],.]

live ↗
InCombinatorialStat(BinaryTree⁡([[0,0],0]),BoundaryNodes)\mathrm{CombinatorialStat}({\operatorname{BinaryTree}}(\bigl\lbrack\bigl\lbrack0, 0\bigr\rbrack, 0\bigr\rbrack), \text{BoundaryNodes})Out22

Known value · FindStat St000203

About
Examples4
CrosswalkFindStat