To calculate the normal, take the cross product of the two vectors formed by v1 = (tri_x-tri_x;tri_y-tri_y;tri_z-tri_z) and v2 = (tri_x-tri_x;tri_y-tri_y;tri_z-tri_z). Don’t forget that v1^v2 = -v2^v1.
And for the sake of completeness, most meshes not have only one normal per vertex but several, especially at hard edges. This follows what ephtracy said, vertex normal depend on the triangle it belongs to, that is why it could have several normals on hard edges.
I advise you to play withy normals in 3d modelers like 3dsmax, blender, maya and friends just to understand this concept.