BinTree {DescTools} | R Documentation |
Binary Tree
Description
Create a binary tree of a given number of nodes n
. Can be used to organize a sorted numeric vector as a binary tree.
Usage
BinTree(n)
PlotBinTree(x, main="Binary tree", horiz=FALSE, cex=1.0, col=1, ...)
Arguments
n |
integer, size of the tree |
x |
numeric vector to be organized as binary tree. |
main |
main title of the plot. |
horiz |
logical, should the plot be oriented horizontally or vertically. The latter is default. |
cex |
character extension factor for the labels. |
col |
color of the linesegments of the plot. |
... |
the dots are sent to |
Details
If we index the nodes of the tree as 1 for the top, 2–3 for the next horizontal row, 4–7 for the next, ... then the parent-child traversal becomes particularly easy. The basic idea is that the rows of the tree start at indices 1, 2, 4, ....
BinTree(13) yields the vector
c(8, 4, 9, 2, 10, 5, 11, 1, 12, 6, 13, 3, 7)
meaning that the smallest element
will be in position 8 of the tree, the next smallest in position 4, etc.
Value
an integer vector of length n
Author(s)
Terry Therneau <therneau.terry@mayo.edu>
Andri Signorell <andri@signorell.net> (plot)
Examples
BinTree(12)
x <- sort(sample(100, 24))
z <- PlotBinTree(x, cex=0.8)
# Plot example - Titanic data, for once from a somwhat different perspective
tab <- apply(Titanic, c(2,3,4), sum)
cprob <- c(1, prop.table(apply(tab, 1, sum))
, as.vector(aperm(prop.table(apply(tab, c(1,2), sum), 1), c(2, 1)))
, as.vector(aperm(prop.table(tab, c(1,2)), c(3,2,1)))
)
PlotBinTree(round(cprob[BinTree(length(cprob))],2), horiz=TRUE, cex=0.8,
main="Titanic")
text(c("sex","age","survived"), y=0, x=c(1,2,3)+1)