:Random binary tree

{{good article}}

{{Short description|Binary tree selected at random}}

File:Random binary trees.svg

In computer science and probability theory, a random binary tree is a binary tree selected at random from some probability distribution on binary trees. Different distributions have been used, leading to different properties for these trees.

Random binary trees have been used for analyzing the average-case complexity of data structures based on binary search trees. For this application it is common to use random trees formed by inserting nodes one at a time according to a random permutation.{{sfnp|Drmota|2009|p=19}} The resulting trees are very likely to have logarithmic depth and logarithmic Strahler number. The treap and related balanced binary search trees use update operations that maintain this random structure even when the update sequence is non-random.

Other distributions on random binary trees include the uniform discrete distribution in which all distinct trees are equally likely, distributions on a given number of nodes obtained by repeated splitting, binary tries and radix trees for random data, and trees of variable size generated by branching processes.

For random trees that are not necessarily binary, see random tree.

Background

File:Extended binary tree.svg

A binary tree is a rooted tree in which each node may have up to two children (the nodes directly below it in the tree), and those children are designated as being either left or right. It is sometimes convenient instead to consider extended binary trees in which each node is either an external node with zero children, or an internal node with exactly two children. A binary tree that is not in extended form may be converted into an extended binary tree by treating all its nodes as internal, and adding an external node for each missing child of an internal node. In the other direction, an extended binary tree with at least one internal node may be converted back into a non-extended binary tree by removing all its external nodes. In this way, these two forms are almost entirely equivalent for the purposes of mathematical analysis, except that the extended form allows a tree consisting of a single external node, which does not correspond to anything in the non-extended form. For the purposes of computer data structures, the two forms differ, as the external nodes of the first form may be represented explicitly as objects in a data structure.{{sfnp|Knuth|1997}}

In a binary search tree the internal nodes are labeled by numbers or other ordered values, called keys, arranged so that an inorder traversal of the tree lists the keys in sorted order. The external nodes remain unlabeled.{{sfnp|Knuth|1973}} Binary trees may also be studied with all nodes unlabeled, or with labels that are not given in sorted order. For instance, the Cartesian tree data structure uses labeled binary trees that are not necessarily binary search trees.{{sfnp|Vuillemin|1980}}

A random binary tree is a random tree drawn from a certain probability distribution on binary trees. In many cases, these probability distributions are defined using a given set of keys, and describe the probabilities of binary search trees having those keys. However, other distributions are possible, not necessarily generating binary search trees, and not necessarily giving a fixed number of nodes.{{sfnp|Sedgewick|Flajolet|2013|p=286}}

From random permutations

File:Random insertion binary tree (100).svg

For any sequence of distinct ordered keys, one may form a binary search tree in which each key is inserted in sequence as a leaf of the tree, without changing the structure of the previously inserted keys. The position for each insertion can be found by a binary search in the previous tree. The random permutation model, for a given set of keys, is defined by choosing the sequence randomly from the permutations of the set, with each permutation having equal probability.{{sfnp|Morin|2014}}

For instance, if the three keys 1,3,2 are inserted into a binary search tree in that sequence, the number 1 will sit at the root of the tree, the number 3 will be placed as its right child, and the number 2 as the left child of the {{nowrap|number 3.}} There are six different permutations of the keys 1,2, and 3, but only five trees may be constructed from them. That is because the permutations 2,1,3 and 2,3,1 form the same tree. Thus, this tree has probability \tfrac26=\tfrac13 of being generated, whereas the other four trees each have {{nowrap|probability \tfrac16.{{sfnp|Sedgewick|Flajolet|2013|p=286}}}}

=Expected depth of a node=

For any key x in a given set of n keys, the expected value of the length of the path from the root to x in a random binary search tree is at most 2\log n+O(1), where "\log" denotes the natural logarithm function and the O introduces big O notation. By linearity of expectation, the expected number of ancestors of x equals the sum, over other keys y, of the probability that y is an ancestor of x. A key y is an ancestor of x exactly when y is the first key to be inserted from the interval [x,y]. Because each key in the interval is equally likely to be first, this happens with probability inverse to the length of the interval. Thus, the keys that are adjacent to x in the sorted sequence of keys have probability \tfrac12 of being an ancestor of x, the keys one step away have probability \tfrac13, etc. The sum of these probabilities forms two copies of the harmonic series extending away from x in both directions in the sorted sequence, giving the 2\log n+O(1) bound above. This bound also holds for the expected search path length for a value x that is one of the given keys.{{harvtxt|Hibbard|1962}}; {{harvtxt|Knuth|1973}}; {{harvtxt|Mahmoud|1992}}, p. 75.

=The longest path=

The longest root-to-leaf path, in a random binary search tree, is longer than the expected path length, but only by a constant factor. Its length, for a tree with n nodes, is with high probability approximately

{{bi|left=1.6|\displaystyle\frac{1}{\beta}\log n \approx 4.311\log n,}}

where \beta is the unique number in the range 0<\beta<1 satisfying the equation

{{bi|left=1.6|\displaystyle 2\beta e^{1-\beta}=1.{{harvtxt|Robson|1979}}; {{harvtxt|Pittel|1985}}; {{harvtxt|Devroye|1986}}; {{harvtxt|Mahmoud|1992}}, pp. 91–99; {{harvtxt|Reed|2003}}.}}

=Expected number of leaves=

In the random permutation model, each key except the smallest and largest has probability \tfrac13 of being a leaf in the tree. This is because it is a leaf when it inserted after its two neighbors, which happens for two out of the six permutations of it and its two neighbors, all of which are equally likely. By similar reasoning, the smallest and largest key have probability \tfrac12 of being a leaf. Therefore, the expected number of leaves is the sum of these probabilities, which for n\ge 2 is exactly (n+1)/3.{{sfnp|Brown|Shubert|1984}}

=Strahler number=

The Strahler number of vertices in any tree is a measure of the complexity of the subtrees under those vertices. A leaf (external node) has Strahler number one. For any other node, the Strahler number is defined recursively from the Strahler numbers of its children. In a binary tree, if two children have different Strahler numbers, the Strahler number of their parent is the larger of the two child numbers. But if two children have equal Strahler numbers, their parent has a number that is greater by one. The Strahler number of the whole tree is the number at the root node. For n-node random binary search trees, simulations suggest that the expected Strahler number is \log_3 n + O(1). A weaker upper bound \log_3 n + o(\log n) has been proven.{{sfnp|Kruszewski|1999}}

=Treaps and randomized binary search trees=

In applications of binary search tree data structures, it is rare for the keys to be inserted without deletion in a random order, limiting the direct applications of random binary trees. However, algorithm designers have devised data structures that allow arbitrary insertions and deletions to preserve the property that the shape of the tree is random, as if the keys had been inserted randomly.

If a given set of keys is assigned numeric priorities (unrelated to their values), these priorities may be used to construct a Cartesian tree for the numbers, the binary search tree that would result from inserting the keys in priority order. By choosing the priorities to be independent random real numbers in the unit interval, and by maintaining the Cartesian tree structure using tree rotations after any insertion or deletion of a node, it is possible to maintain a data structure that behaves like a random binary search tree. Such a data structure is known as a treap or a randomized binary search tree.{{harvtxt|Martínez|Roura|1998}}; {{harvtxt|Seidel|Aragon|1996}}; {{harvtxt|Morin|2014}}.

Variants of the treap including the zip tree and zip-zip tree replace the tree rotations by "zipping" operations that split and merge trees, and that limit the number of random bits that need to be generated and stored alongside the keys. The result of these optimizations is still a tree with a random structure, but one that does not exactly match the random permutation model.{{harvtxt|Tarjan|Levy|Timmel|2021}}; {{harvtxt|Gila|Goodrich|Tarjan|2023}}.

Uniformly random binary trees

File:Uniformly random binary tree (100).svg

The number of binary trees with n nodes is a Catalan number.{{sfnp|Drmota|2009|p=26}} For n=1,2,3,\dots these numbers of trees are

{{bi|left=1.6|1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, ... {{OEIS|id=A000108}}.}}

Thus, if one of these trees is selected uniformly at random, its probability is the reciprocal of a Catalan number. Trees generated from a model in this distribution are sometimes called random binary Catalan trees.{{sfnp|Sedgewick|Flajolet|2013|p=287}} They have expected depth proportional to the square root of n, rather than to the logarithm.{{sfnp|Knuth|2005|p=15}} More precisely, the expected depth of a randomly chosen node in an n-node tree of this type is

{{bi|left=1.6|\sqrt{\pi n} - 3 + O\left(\frac{1}{\sqrt n}\right).{{sfnp|Sedgewick|Flajolet|2013|p=288}}}}

The expected Strahler number of a uniformly random n-node binary tree is \log_4 n+O(1), lower than the expected Strahler number of random binary search trees.{{sfnp|Devroye|Kruszewski|1995}}

Due to their large heights, this model of equiprobable random trees is not generally used for binary search trees. However, it has other applications, including:

  • Modeling the parse trees of algebraic expressions in compiler design.{{sfnp|Mahmoud|1992|p=63}} Here the internal nodes of the tree represent binary operations in an expression and the external nodes represent the variables or constants on which the expressions operate. The bound on Strahler number translates into the number of registers needed to evaluate an expression.{{sfnp|Flajolet|Raoult|Vuillemin|1979}}
  • Modeling river networks, the original application for which the Strahler number was developed.{{sfnp|Shreve|1966}}
  • Modeling possible evolutionary trees for a fixed number of species. In this application, an extended binary tree is used, with the species at its external nodes.{{sfnp|Aldous|1996}}

An algorithm of Jean-Luc Rémy generates a uniformly random binary tree of a specified size in time linear in the size, by the following process. Start with a tree consisting of a single external node. Then, while the current tree has not reached the target size, repeatedly choose one of its nodes (internal or external) uniformly at random. Replace the chosen node by a new internal node, having the chosen node as one of its children (equally likely left or right), and having a new external node as its other child. Stop when the target size is reached.{{harvtxt|Rémy|1985}}; {{harvtxt|Mäkinen|Siltaneva|2003}}; {{harvtxt|Knuth|2005}}, pp. 16–17.

Branching processes

The Galton–Watson process describes a family of distributions on trees in which the number of children at each node is chosen randomly, independently of other nodes. For binary trees, two versions of the Galton–Watson process are in use, differing only in whether an extended binary tree with only one node, an external root node, is allowed:

  • In the version where the root node may be external, it is chosen to be internal with some specified probability p or external with probability 1-p. If it is internal, its two children are trees generated recursively by the same process.
  • In the version where the root node must be internal, its left and right children are determined to be internal with probability p or external with {{nowrap|probability 1-p,}} independently of each other. In the case where they are internal, they are the roots of trees that are generated recursively by the same process.

Trees generated in this way have been called binary Galton–Watson trees. In the special case where p=\tfrac12 they are called critical binary Galton–Watson trees.{{sfnp|Burd|Waymire|Winn|2000}}

=Analysis=

The probability p=\tfrac12 marks a phase transition for the binary Galton–Watson process: for p\le\tfrac12 the resulting tree is almost certainly finite, whereas for p>\tfrac12 it is infinite with positive probability. More precisely, for {{nowrap|any p,}} the probability that the tree remains finite is

{{bi|left=1.6|\displaystyle \min\left\{1,\frac{1-p}{p}\right\}.This is a special case of a general theorem about criticality and extinction probabilities in Galton–Watson processes, according to which the extinction probability is the smallest positive root of the {{nowrap|formula g(r)=r,}} where g is the probability-generating function of the distribution on the number of children, here g(x)=(1-p)+px^2. See e.g. {{harvtxt|Jagers|2011}}, Theorem 2.1, p. 92. Jagers carries out the calculation of this root for the binary case on p. 97.}}

Another way to generate the same trees is to make a sequence of coin flips, with probability p of heads and probability 1-p of tails, until the first flip at which the number of tails exceeds the number of heads (for the model in which an external root is allowed) or exceeds one plus the number of heads (when the root must be internal), and then use this sequence of coin flips to determine the choices made by the recursive generation process, in depth-first order.For the connection between trees and random walks (as generated by random coin flips) see e.g. Section 6, "Walks and trees" pp. 483–486, of {{harvtxt|Harris|1952}}.

Because the number of internal nodes equals the number of heads in this coin flip sequence, all trees with a given number n of nodes are generated from (unique) coin flip sequences of the same length, and are equally likely, regardless of p. That is, the choice of p affects the variation in the size of trees generated by this process, but for a given size the trees are generated uniformly at random.{{harvtxt|Broutin|Devroye|Fraiman|2020}}. More generally, every Galton–Watson process, conditioned on producing trees of a certain size, produces the same probability distribution as a critical Galton–Watson process: see section 2 of {{harvtxt|Kennedy|1975}}. For values of p below the critical {{nowrap|probability p=\tfrac12,}} smaller values of p will produce trees with a smaller expected size, while larger values of p will produce trees with a larger expected size. At the critical probability p=\tfrac12 there is no finite bound on the expected size of trees generated by this process. More precisely, for {{nowrap|any p,}} the expected number of nodes at depth i in the tree {{nowrap|is (2p)^i,}} and the expected size of the tree can be obtained by summing the expected numbers of nodes at each depth. For p<\tfrac12 this gives a geometric series

{{bi|left=1.6|\displaystyle 1+(2p)+(2p)^2+\cdots=\frac{1}{1-2p},}}

for the expected tree size, but for p=\tfrac12 this gives 1 + 1 + 1 + 1 + ⋯, a divergent series.For the expected number of nodes at each level of the tree, see e.g. {{harvtxt|Athreya|Ney|1972}}, Section I.A.2: Moments, p. 4.

{{nowrap|For p=\tfrac12,}} any particular tree with n internal nodes is generated with {{nowrap|probability 1/2^{2n+1},}} and the probability that a random tree has this size is this probability multiplied by a Catalan number,

{{bi|left=1.6|\frac{C_n}{2^{2n+1}}=\frac{1}{2n+1}\binom{2n+1}{n}\frac{1}{2^{2n+1}}\approx\frac{1}{\sqrt{4\pi}\,n^{3/2}}\displaystyle.By the equivalence between trees and random walks, this is the same as the probability of first returning to zero after 2n+2 steps in a simple random walk, for which see e.g. {{harvtxt|Bertin|2021}}, 2.5.1 Statistics of First Return Times to the Origin of a Random Walk, pp. 70–72.}}

=Applications=

Galton–Watson processes were originally developed to study the spread and extinction of human surnames, and have been widely applied more generally to the dynamics of human or animal populations. These processes have been generalized to models where the probability of being an internal or external node at a given level of the tree (a generation, in the population dynamics application) is not fixed, but depends on the number of nodes at the previous level.{{sfnp|Jagers|2011}} A version of this process, with the critical {{nowrap|probability \tfrac12,}} has been studied as a model for speciation, where it is known as the critical branching process. In this process, each species has an exponentially distributed lifetime, and over the course of its lifetime produces child species at a rate equal to the lifetime. When a child is produced, the parent continues as the left branch of the evolutionary tree, and the child becomes the right branch.{{sfnp|Popovic|2004}}

Another application of critical Galton–Watson trees (in the version where the root must be internal) arises in the Karger–Stein algorithm for finding minimum cuts in graphs, using a recursive edge contraction process. This algorithm calls itself twice recursively, with each call having probability at least \tfrac12 of preserving the correct solution value. The random tree models the subtree of correct recursive calls. The algorithm succeeds on a graph of n vertices whenever this random tree of correct recursive calls has a branch of depth at least 2\log_2 n, reaching the base case of its recursion. The success probability {{nowrap|is \Omega(1/\log n),}} producing one of the logarithmic factors in the algorithm's O(n^2\log^3 n) runtime.{{sfnp|Karger|Stein|1996}}

=Yule process=

Devroye and Robson consider a related continuous-time random process in which each external node is eventually replaced by an internal node with two external children, at an exponentially distributed time after its first appearance as an external node. The number of external nodes in the tree, at any time, is modeled by a simple birth process or Yule process in which the members of a population give birth at a constant rate: giving birth to one child, in the Yule process, corresponds to being replaced by two children, in Devroye and Robson's model. If this process is stopped at any fixed time, the result is a binary tree of a random size (depending on the stopping time), distributed according to the random permutation model for that size. Devroye and Robson use this model as part of an algorithm to quickly generate trees in the random permutation model, described by their numbers of nodes at each depth rather than by their exact structure.{{sfnp|Devroye|Robson|1995}} A discrete variant of this process starts with a tree consisting of a single external node, and repeatedly replaces a randomly-chosen external node by an internal node with two external children. Again, if this is stopped at a fixed time (with a fixed size), the resulting tree is distributed according to the random permutation model for that size.{{sfnp|Drmota|2009|p=19}}

Binary tries

File:Trie vs radix tree.svg and radix tree for the same data, eight numbers in the unit interval. The labels are prefixes of the binary representations of the numbers, shared by two or more of the numbers.]]

Another form of binary tree, the binary trie or digital search tree, has a collection of binary numbers labeling some of its external nodes. The internal nodes of the tree represent prefixes of their binary representations that are shared by two or more of the numbers. The left and right children of an internal node are obtained by extending the corresponding prefix by one more bit, a zero or a one bit respectively. If this extension does not match any of the given numbers, or it matches only one of them, the result is an external node; otherwise it is another internal node. Random binary tries have been studied, for instance for sets of random real numbers generated independently in the unit interval. Despite the fact that these trees may have some empty external nodes, they tend to be better balanced than random binary search trees. For n uniformly random real numbers in the unit interval, or more generally for any square-integrable probability distribution on the unit interval, the average depth of a node is asymptotically \log_2 n, and the average height of the whole tree is asymptotically 2\log_2 n. The analysis of these trees can be applied to the computational complexity of trie-based sorting algorithms.{{sfnp|Devroye|1984}}

A variant of the trie, the radix tree or compressed trie, eliminates empty external nodes and their parent internal nodes. The remaining internal nodes correspond to prefixes for which both possible extensions, by a zero or a one bit, are used by at least one of the randomly chosen numbers. For a radix tree for n uniformly distributed binary numbers, the shortest leaf-root path has length

\log_2 n-\log_2\log n+o(\log\log n)

and the longest leaf-root path has length

\log_2 n+\sqrt{2\log_2 n}+o(\sqrt{\log n}),

both with high probability.{{sfnp|Devroye|1992}}

Random split trees

Luc Devroye and Paul Kruszewski describe a recursive process for constructing random binary trees with n nodes. It generates a real-valued random variable x in the unit interval (0,1), assigns the first xn nodes (rounded down to an integer number of nodes) to the left subtree, the next node to the root, and the remaining nodes to the right subtree. Then, it continues recursively using the same process in the left and right subtrees. If x is chosen uniformly at random in the interval, the result is the same as the random binary search tree generated by a random permutation of the nodes, as any node is equally likely to be chosen as root. However, this formulation allows other distributions to be used instead. For instance, in the uniformly random binary tree model, once a root is fixed each of its two subtrees must also be uniformly random, so the uniformly random model may also be generated by a different choice of distribution (depending on n) for x. As they show, by choosing a beta distribution on x and by using an appropriate choice of shape to draw each of the branches, the mathematical trees generated by this process can be used to create realistic-looking botanical trees.{{sfnp|Devroye|Kruszewski|1996}}

Notes

{{reflist|30em}}

References

{{refbegin|30em}}

  • {{citation

| last = Aldous

| first = David

| author-link = David Aldous

| contribution = Probability distributions on cladograms

| doi = 10.1007/978-1-4612-0719-1_1

| editor1-last = Aldous

| editor1-first = David

| editor2-last = Pemantle

| editor2-first = Robin

| pages = 1–18

| publisher = Springer-Verlag

| series = The IMA Volumes in Mathematics and its Applications

| title = Random Discrete Structures

| url = https://www.stat.berkeley.edu/~aldous/Papers/me69.ps

| volume = 76

| year = 1996

| isbn = 978-1-4612-6881-9

}}

  • {{citation

| last1 = Athreya | first1 = Krishna B.

| last2 = Ney | first2 = Peter E.

| doi = 10.1007/978-3-642-65371-1

| isbn = 978-3-642-65371-1

| location = Berlin

| pages = 199–206

| publisher = Springer-Verlag

| title = Branching Processes

| year = 1972}}

  • {{citation

| last = Bertin | first = Eric

| doi = 10.1007/978-3-030-79949-6

| edition = 3rd

| isbn = 9783030799496

| publisher = Springer International Publishing

| series = Springer Series in Synergetics

| title = Statistical Physics of Complex Systems: A Concise Introduction

| year = 2021| bibcode = 2021spcs.book.....B

}}

  • {{citation

| last1 = Brown

| first1 = Gerald G.

| last2 = Shubert

| first2 = Bruno O.

| doi = 10.1287/moor.9.1.43

| journal = Mathematics of Operations Research

| pages = 43–65

| title = On random binary trees

| url = https://scholar.archive.org/work/3fjrwxwgsnhobasgfbv4rsvozu

| volume = 9

| year = 1984

}}

  • {{citation

| last1 = Broutin

| first1 = Nicolas

| last2 = Devroye

| first2 = Luc

| author2-link = Luc Devroye

| last3 = Fraiman

| first3 = Nicolas

| date = April 2020

| doi = 10.1002/rsa.20921

| issue = 2

| journal = Random Structures & Algorithms

| pages = 304–316

| publisher = Wiley

| title = Recursive functions on conditional Galton–Watson trees

| url = http://luc.devroye.org/Broutin-Devroye-Fraiman-GaltonWatsonMarkov-2020.pdf

| volume = 57

| arxiv = 1805.09425

}}

  • {{citation

| last1 = Burd

| first1 = Gregory A.

| last2 = Waymire

| first2 = Edward C.

| last3 = Winn

| first3 = Ronald D.

| date = February 2000

| issue = 1

| journal = Bernoulli

| jstor = 3318630

| pages = 1–21

| title = A self-similar invariance of critical binary Galton–Watson trees

| url = https://projecteuclid.org/journals/bernoulli/volume-6/issue-1/A-self-similar-invariance-of-critical-binary-Galton-Watson-trees/bj/1082665377.full

| volume = 6

| doi = 10.2307/3318630

}}

  • {{citation

| last = Devroye

| first = Luc

| doi = 10.1007/BF00264248

| journal = Acta Informatica

| pages = 229–237

| title = A probabilistic analysis of the height of tries and of the complexity of triesort

| url = http://luc.devroye.org/devroye_1984_probabilistic_analysis_height_tries_complexity_triesort.pdf

| volume = 21

| year = 1984

| issue = 3

}}

  • {{citation

| last = Devroye

| first = Luc

| author-link = Luc Devroye

| doi = 10.1145/5925.5930

| issue = 3

| journal = Journal of the ACM

| pages = 489–498

| s2cid =

| title = A note on the height of binary search trees

| url = http://luc.devroye.org/devroye_1986_univ_a_note_on_the_height_of_binary_search_trees.pdf

| volume = 33

| year = 1986

| doi-access = free

}}

  • {{citation

| last = Devroye

| first = Luc

| author-link = Luc Devroye

| date = January 1992

| doi = 10.1002/rsa.3240030209

| issue = 2

| journal = Random Structures & Algorithms

| pages = 203–214

| title = A note on the probabilistic analysis of patricia trees

| url = http://luc.devroye.org/patricia1992.pdf

| volume = 3

}}

  • {{citation

| last1 = Devroye

| first1 = Luc

| author1-link = Luc Devroye

| last2 = Kruszewski

| first2 = Paul

| author2-link = Paul Kruszewski

| doi = 10.1016/0020-0190(95)00114-R

| issue = 2

| journal = Information Processing Letters

| pages = 95–99

| title = A note on the Horton–Strahler number for random trees

| url = http://luc.devroye.org/hs-ebt.pdf

| volume = 56

| year = 1995

}}

  • {{citation

| last1 = Devroye

| first1 = Luc

| author1-link = Luc Devroye

| last2 = Kruszewski

| first2 = Paul

| author2-link = Paul Kruszewski

| contribution = The botanical beauty of random binary trees

| contribution-url = http://luc.devroye.org/gd95.pdf

| doi = 10.1007/BFb0021801

| doi-access = free

| editor-last = Brandenburg

| editor-first = Franz J.

| isbn = 978-3-540-60723-6

| pages = 166–177

| publisher = Springer-Verlag

| series = Lecture Notes in Computer Science

| title = Graph Drawing: 3rd Int. Symp., GD'95, Passau, Germany, September 20–22, 1995

| volume = 1027

| year = 1996

}}

  • {{citation

| last1 = Devroye

| first1 = Luc

| author1-link = Luc Devroye

| last2 = Robson

| first2 = John Michael

| date = December 1995

| doi = 10.1137/s0097539792224954

| issue = 6

| journal = SIAM Journal on Computing

| pages = 1141–1156

| title = On the generation of random binary aearch trees

| url = http://luc.devroye.org/devroye_robson_1995_generation_random_binary_search_tree.pdf

| volume = 24

}}

  • {{citation

| last = Drmota | first = Michael | author-link = Michael Drmota

| doi = 10.1007/978-3-211-75357-6

| isbn = 978-3-211-75355-2

| publisher = Springer-Verlag

| title = Random Trees: An Interplay between Combinatorics and Probability

| year = 2009}}

  • {{citation

| last1 = Flajolet

| first1 = P.

| author1-link = Philippe Flajolet

| last2 = Raoult

| first2 = J. C.

| last3 = Vuillemin

| first3 = J.

| author3-link = Jean Vuillemin

| doi = 10.1016/0304-3975(79)90009-4

| doi-access = free

| issue = 1

| journal = Theoretical Computer Science

| pages = 99–125

| title = The number of registers required for evaluating arithmetic expressions

| url = https://core.ac.uk/download/pdf/82609425.pdf

| volume = 9

| year = 1979

}}

  • {{citation

| last1 = Gila | first1 = Ofek

| last2 = Goodrich | first2 = Michael T. | author2-link = Michael T. Goodrich

| last3 = Tarjan | first3 = Robert E. | author3-link = Robert Tarjan

| editor1-last = Morin | editor1-first = Pat | editor1-link = Pat Morin

| editor2-last = Suri | editor2-first = Subhash | editor2-link = Subhash Suri

| arxiv = 2307.07660

| contribution = Zip-zip trees: making zip trees more balanced, biased, compact, or persistent

| doi = 10.1007/978-3-031-38906-1_31

| pages = 474–492

| publisher = Springer

| series = Lecture Notes in Computer Science

| title = Algorithms and Data Structures – 18th International Symposium, WADS 2023, Montreal, QC, Canada, July 31 – August 2, 2023, Proceedings

| volume = 14079

| year = 2023| isbn = 978-3-031-38905-4

}}

  • {{citation

| last = Harris | first = T. E.

| doi = 10.1090/s0002-9947-1952-0052057-2

| issue = 3

| journal = Transactions of the American Mathematical Society

| pages = 471–486

| title = First passage and recurrence distributions

| volume = 73

| year = 1952}}

  • {{citation

| last = Hibbard | first = Thomas N. | author-link = Thomas N. Hibbard

| doi = 10.1145/321105.321108

| issue = 1

| journal = Journal of the ACM

| pages = 13–28

| title = Some combinatorial properties of certain trees with applications to searching and sorting

| volume = 9

| year = 1962| doi-access = free

}}

  • {{citation

| last = Jagers | first = Peter

| editor1-last = Chalub | editor1-first = Fabio A. C. C.

| editor2-last = Rodrigues | editor2-first = José Francisco

| contribution = Extinction, persistence, and evolution

| doi = 10.1007/978-3-0348-0122-5_5

| isbn = 9783034801225

| location = Basel

| pages = 91–104

| publisher = Birkhäuser

| series = Mathematics and Biosciences in Interaction

| title = The Mathematics of Darwin's Legacy

| year = 2011}}

  • {{citation

| last1 = Karger

| first1 = David R.

| author1-link = David Karger

| last2 = Stein

| first2 = Clifford

| author2-link = Clifford Stein

| doi = 10.1145/234533.234534

| issue = 4

| journal = Journal of the ACM

| page = 601

| s2cid =

| title = A new approach to the minimum cut problem

| url = https://www.columbia.edu/~cs2035/courses/ieor6614.S09/Contraction.pdf

| volume = 43

| year = 1996

}}

  • {{citation

| last = Kennedy | first = Douglas P.

| doi = 10.2307/3212730

| journal = Journal of Applied Probability

| pages = 800–806

| title = The Galton–Watson process conditioned on the total progeny

| volume = 12

| year = 1975| issue = 4

| jstor = 3212730

}}

  • {{citation

| last = Knuth | first = Donald E. | author-link = Donald Knuth

| contribution = 6.2.2 Binary Tree Searching

| pages = 422–451

| publisher = Addison-Wesley

| title = The Art of Computer Programming, Vol. III: Sorting and Searching

| year = 1973| title-link = The Art of Computer Programming }}

  • {{citation

| last = Knuth | first = Donald E. | author-link = Donald Knuth

| contribution = 2.3.4.5 Path Length

| edition = 3rd

| pages = 399–406

| publisher = Addison-Wesley

| title = The Art of Computer Programming, Vol. I: Seminumerical Algorithms

| year = 1997| title-link = The Art of Computer Programming }}

  • {{citation

| last = Knuth

| first = Donald E.

| author-link = Donald Knuth

| contribution = Draft of Section 7.2.1.6: Generating All Trees

| title = The Art of Computer Programming

| volume = IV

| contribution-url = http://www-cs-faculty.stanford.edu/~knuth/fasc4a.ps.gz

| year = 2005

| title-link = The Art of Computer Programming

| access-date = 2009-03-31

| archive-date = 2023-01-02

| archive-url = https://web.archive.org/web/20230102051934/https://www-cs-faculty.stanford.edu/~knuth/fasc4a.ps.gz

| url-status = dead

}}

  • {{citation

| last = Kruszewski | first = Paul | author-link = Paul Kruszewski

| doi = 10.1016/S0020-0190(98)00192-6

| issue = 1

| journal = Information Processing Letters

| pages = 47–51

| title = A note on the Horton–Strahler number for random binary search trees

| volume = 69

| year = 1999}}

  • {{citation

| last1 = Mäkinen | first1 = Erkki

| last2 = Siltaneva | first2 = Jarmo

| doi = 10.35834/2003/1502103

| issue = 2

| journal = Missouri Journal of Mathematical Sciences

| pages = 103–109

| title = A note on Rémy's algorithm for generating random binary trees

| volume = 15

| year = 2003}}

  • {{citation

| last = Mahmoud | first = Hosam M.

| publisher = John Wiley & Sons

| title = Evolution of Random Search Trees

| year = 1992}}

  • {{citation

| last1 = Martínez | first1 = Conrado

| last2 = Roura | first2 = Salvador

| citeseerx = 10.1.1.17.243

| doi = 10.1145/274787.274812

| issue = 2

| journal = Journal of the ACM

| pages = 288–323

| s2cid =

| title = Randomized binary search trees

| volume = 45

| year = 1998}}

  • {{citation

| last = Morin

| first = Pat

| author-link = Pat Morin

| contribution = Chapter 7: Random Binary Search Trees

| date = March 22, 2014

| edition = 0.1Gβ

| pages = 145–164

| title = Open Data Structures (in pseudocode)

| url = https://opendatastructures.org/ods-python.pdf

}}

  • {{citation

| last = Pittel | first = B.

| doi = 10.1214/aop/1176993000 | doi-access = free

| issue = 2

| journal = Annals of Probability

| pages = 414–427

| title = Asymptotical growth of a class of random trees

| volume = 13

| year = 1985}}

  • {{citation

| last = Popovic | first = Lea

| date = November 2004

| doi = 10.1214/105051604000000486

| issue = 4

| journal = Annals of Applied Probability

| title = Asymptotic genealogy of a critical branching process

| volume = 14| arxiv = math/0503577

}}

  • {{citation

| last = Reed | first = Bruce | authorlink = Bruce Reed (mathematician)

| doi = 10.1145/765568.765571

| issue = 3

| journal = Journal of the ACM

| pages = 306–332

| s2cid =

| title = The height of a random binary search tree

| volume = 50

| year = 2003}}

  • {{citation

| last = Rémy

| first = Jean-Luc

| journal = RAIRO Informatique théorique

| language = fr

| pages = 179–195

| title = Un procédé itératif de dénombrement d'arbres binaires et son application à leur génération aléatoire

| url = https://www.numdam.org/item/ITA_1985__19_2_179_0/

| volume = 19

| year = 1985

| issue = 2

| doi = 10.1051/ita/1985190201791

}}

  • {{citation

| last = Robson | first = J. M.

| journal = Australian Computer Journal

| pages = 151–153

| title = The height of binary search trees

| volume = 11

| year = 1979}}

  • {{citation

| last1 = Seidel | first1 = Raimund | author1-link = Raimund Seidel

| last2 = Aragon | first2 = Cecilia R. | author2-link = Cecilia R. Aragon

| doi = 10.1007/s004539900061

| issue = 4–5

| journal = Algorithmica

| pages = 464–497

| title = Randomized search trees

| volume = 16

| year = 1996| doi-broken-date = 2024-11-05 }}

  • {{citation

| last1 = Sedgewick | first1 = Robert | author1-link = Robert Sedgewick (computer scientist)

| last2 = Flajolet | first2 = Philippe | author2-link = Philippe Flajolet

| contribution = Chapter 6: Trees

| edition = 2nd

| isbn = 9780133373486

| publisher = Addison-Wesley

| title = An Introduction to the Analysis of Algorithms

| year = 2013}}

  • {{citation

| last = Shreve | first = Ronald L.

| date = January 1966

| issue = 1

| journal = The Journal of Geology

| jstor = 30075174

| pages = 17–37

| title = Statistical law of stream numbers

| volume = 74| doi = 10.1086/627137

| bibcode = 1966JG.....74...17S

}}

  • {{citation

| last1 = Tarjan | first1 = Robert E. | author1-link = Robert Tarjan

| last2 = Levy | first2 = Caleb C.

| last3 = Timmel | first3 = Stephen

| doi = 10.1145/3476830

| issue = 4

| journal = ACM Transactions on Algorithms

| pages = 34:1–34:12

| title = Zip trees

| volume = 17

| year = 2021| arxiv = 1806.06726

}}

  • {{citation

| last = Vuillemin | first = Jean | authorlink = Jean Vuillemin

| doi = 10.1145/358841.358852 | doi-access = free

| issue = 4

| journal = Communications of the ACM

| pages = 229–239

| s2cid =

| title = A unifying look at data structures

| volume = 23

| year = 1980}}

{{refend}}

Category:Binary trees

Category:Statistical randomness

Category:Probabilistic data structures