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.