fan vs strip
Why not just work with a collection of triangles directly? It uses more memory, yes, but it's simpler to reason about and can also have parallelism benefits (since each triangle is independent).
It can still be useful to track shared vertices (and reference them by index) though.