Není-li omezen počet následníků uzlu stromu, pak hovoříme o stromu s neomezeným větvením. Tuto datovou strukturu můžeme realizovat přirozeně tak, že každý uzel stromu bude obsahovat seznam následníků:
class TreeNode { Object value; List children; }
Jinou variantou je propojení každého uzlu s jeho nejlevějším následníkem a pravým sousedem. Tato varianta je výhodná například tam, kde potřebujeme zajistit statické přidělení paměti pro uzel stromu (např. v poli) - dynamický seznam následníků je nahrazen právě uvedenými dvěma ukazateli.
class TreeNode { Object value; TreeNode firstChild; TreeNode rightSibling; }
Podle konkrétní potřeby můžeme strukturu uzlu rozšířit ještě o ukazatel na nadřazený uzel; naopak lze prakticky využít i takové stromy, ve kterých každý uzel zná pouze svůj nadřazený uzel a další vazby neudržujeme.