# treebranchlabels

##### Label Vertices of a Tree by Branch Membership

Given a linear network which is a tree (acyclic graph), this function assigns a label to each vertex, indicating its position in the tree.

##### Usage

`treebranchlabels(L, root = 1)`

##### Arguments

- L
Linear network (object of class

`"linnet"`

). The network must have no loops.- root
Root of the tree. An integer index identifying which point in

`vertices(L)`

is the root of the tree.

##### Details

The network `L`

should be a tree, that is, it must have no loops.

This function computes a character string label for each vertex
of the network `L`

. The vertex identified by `root`

(that is, `vertices(L)[root]`

) is taken as the root of the tree
and is given the empty label `""`

.

If there are several line segments which meet at the root vertex, each of these segments is the start of a new branch of the tree; the other endpoints of these segments are assigned the labels

`"a"`

,`"b"`

,`"c"`

and so on.If only one segment issues from the root vertex, the other endpoint of this segment is assigned the empty label

`""`

.

A similar rule is then applied to each of the newly-labelled vertices.
If the vertex labelled `"a"`

is joined to two other unlabelled
vertices, these will be labelled `"aa"`

and `"ab"`

.
The rule is applied recursively until all vertices have been labelled.

If `L`

is not a tree, the algorithm will terminate, but the
results will be nonsense.

##### Value

A vector of character strings, with one entry for each point in
`vertices(L)`

.

##### See Also

`deletebranch`

, `extractbranch`

,
`treeprune`

for manipulating a network using the
branch labels.

`linnet`

for creating a network.

##### Examples

```
# NOT RUN {
# make a simple tree
m <- simplenet$m
m[8,10] <- m[10,8] <- FALSE
L <- linnet(vertices(simplenet), m)
plot(L, main="")
# compute branch labels
tb <- treebranchlabels(L, 1)
tbc <- paste0("[", tb, "]")
text(vertices(L), labels=tbc, cex=2)
# }
```

*Documentation reproduced from package spatstat, version 1.56-1, License: GPL (>= 2)*