O layout das declarações/definições de ponteiros na linguagem C é sabidamente desconfortável. Conceitualmente, um ponteiro-para-Vertex é um novo tipo-de-dados e isso sugere que se escreva o * colado ao Vertex:

Vertex* v;

Do ponto de vista técnico, entretanto, o * modifica a nova variável e não o Vertex. Isso sugere que o * seja colado ao v:

Vertex *v;

O compilador C aceita qualquer das formas. Também aceita

Vertex * v;

(Veja a pergunta Why do we use int *p over int* p? no Quora.)