Why 'Flat is better than nested'

Terry Reedy tjreedy at udel.edu
Tue Jul 31 19:57:24 EDT 2012


On 7/31/2012 5:49 PM, Ian Kelly wrote:
> On Tue, Jul 31, 2012 at 3:28 PM, Ifthikhan Nazeem <iftecan2000 at gmail.com> wrote:
>> as many as (about) 2*N - log2(N) parent child relationships
>>
>> I would like to know how did you come up with the above formula? Forgive my
>> ignorance.

By non-rigorous experimentation, which did not quite count everything.

> I come up with 2N - 2 myself.  If there are N leaf nodes and N - 1
> non-leaf nodes, then there are 2N - 1 total nodes, each of which has
> one parent except for the root.  That's 2N - 2 parent-child
> relationships.

That looks right. I was trying to think recursively, which in this case 
is more rather than less complicated. That actually sharpens my original 
point. N-1 new nodes and 2N-2 new relationships is 3N-3 new entities.

The internal node limit of N-1 only applies to full-proper-strict binary 
trees without one-child internal nodes. Otherwise, a single leaf node 
could have an indefinite number of ancestors.

from https://en.wikipedia.org/wiki/Binary_tree
"A full binary tree (sometimes proper binary tree or 2-tree or strictly 
binary tree) is a tree in which every node other than the leaves has two 
children."

-- 
Terry Jan Reedy






More information about the Python-list mailing list