Learn R Programming

DescTools (version 0.99.19)

BinTree: Binary Tree

Description

Create 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 Canvas.

Value

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 [[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.

Examples

Run this code
BinTree(12)

x <- sort(sample(100, 24))
z <- PlotBinTree(x, cex=0.8)


# Plot example - Titanic once somwhat different
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)

Run the code above in your browser using DataLab