# Class AbstractRootedTree

java.lang.Object
jebl.evolution.trees.AbstractRootedTree

All Implemented Interfaces:
  `Graph, RootedTree, Tree, Attributable`

Direct Known Subclasses:
  `FilteredRootedTree, MutableRootedTree, ReRootedTree, RootedFromUnrooted, RootedSubtree`

public abstract class AbstractRootedTree extends Object implements RootedTree

Version:
  $
Author:
  Andrew Rambaut

## Nested Class Summary

### Nested classes/interfaces inherited from interface Graph

`Graph.NoEdgeException, Graph.Utils`

## Constructor Summary

Constructors
Constructor
Description
`AbstractRootedTree()`

## Method Summary

Modifier and Type
Method
Description
`int`
`getExternalNodeCount(Node node)`
`List<Node>`
`getExternalNodes(Node node)`

### Methods inherited from class Object

`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface Attributable

`getAttribute, getAttributeMap, getAttributeNames, removeAttribute, setAttribute`

### Methods inherited from interface Graph

`getAdjacencies, getEdge, getEdgeLength, getEdges, getEdges, getNodes, getNodes, getNodes`

### Methods inherited from interface RootedTree

`conceptuallyUnrooted, getChildren, getHeight, getLength, getParent, getRootNode, hasHeights, hasLengths, isHeightsKnown, isLengthsKnown, isRoot`

### Methods inherited from interface Tree

`getExternalEdges, getExternalNodes, getInternalEdges, getInternalNodes, getNode, getTaxa, getTaxon, isExternal, renameTaxa`

## Constructor Details

### AbstractRootedTree

public AbstractRootedTree()

## Method Details

### getExternalNodeCount

public int getExternalNodeCount(Node node)

Specified by:
  `getExternalNodeCount` in interface `RootedTree`

### getExternalNodes

public List<Node> getExternalNodes(Node node)

Specified by:
  `getExternalNodes` in interface `RootedTree`
Parameters:
  `node` - the node whose external nodes are being requested.
Returns:
  the list of external nodes descendent of the given node. The set may be empty for a terminal node (a tip).