Logo

Programming-Idioms

  • PHP
  • Go

Idiom #9 Create a Binary Tree data structure

The structure must be recursive because left child and right child are binary trees too. A node has access to children nodes, but not to its parent.

type BinTree struct {
	Label       valueType
	Left, Right *BinTree
}
type BinTree[L any] struct {
	Label       L
	Left, Right *BinTree[L]
}

The type parameter L is for arbitrary node label data
class BNode
{
    public $data;
    public $lNode;
    public $rNode;

    public function __construct($item)
    {
        $this->data = $item;
        $this->lNode = null;
        $this->rNode = null;
    }
}
type Tree_Node;
type Tree_Node_Access is access Tree_Node;
type Tree_Node is record
   Value: Integer;
   Left, Right: Tree_Node_Access;
end record;

New implementation...
< >
programming-idioms.org