The typedef just creates an alias (a single word), for some other type. Some types in C can be fairly complicated and it gets tedious and error prone to keep writing them out in full.

> banyan* count[2];
Is no different to
struct tree* count[2];

banyan IS NOT a new type, nor an instance of a tree.

A typedef doesn't create anything new, it's just a different way of referring to something else which already exists.