V praxi se často setkáváme s binárními stromy, jejichž uzly mají nejvýše dva následníky. Tento typ stromu se používá například pro vyhledávání, reprezentaci zanořených seznamových struktur nebo jako vnitřní struktura pro rozhodovací systémy.
V jazyce Java můžeme uzly binárního stromu reprezentovat objekty, které nesou nějakou datovou složku (např. typu Object, což nám umožní do stromu ukládat libovolné objekty) a referenci na levého a pravého následníka uzlu. Pokud některý následník chybí, bude příslušná reference nastavena na hodnotu null.
class TreeNode {
public TreeNode(Object data) { _data = data; }
public TreeNode getLeft() { return _left; }
public TreeNode getRight() { return _right; }
public Object getData() { return _data; }
public void setLeft(TreeNode node) { _left = node; }
public void setRight(TreeNode node) { _right = node; }
public void setData(Object data) { _data = data; }
private Object _data;
private TreeNode _left;
private TreeNode _right;
}
Takto reprezentovaný uzel stromu se vytváří jako list nesoucí zadanou hodnotu a teprve voláním metod setLeft() a setRight() pro nastavení reference na levý a pravý podstrom se z něj stává vnitřní uzel stromu.