el typedef puede ser util para definir un tipo de datos es decir asignarle un alias del tipo de dato.en tu caso estas creando un nuevo tipo de ELEMENT que parte o inicia de una estructura
y las estructuras nos permiten agrupar varios datos, que mantengan algún tipo de relación, aunque sean de distinto tipo
se crean de la siguiente forma el typedef es para darle un alias valga la redundancia
Código C++:
Ver originalstruct nombre_estructura{
tipo_dato variable...
};