Nehal,
One (not very computationally efficient) way to do this
paths = {{a, e, f}, {a, b, c}, {a, i, l, j, f}, {a, e, h, g, d}, {a, 
   i, m, q, o, j, f}, {a, i, l, n, k, h, f}, {a, i, l, n, k, g, 
   d}, {a, i, l, j, h, g, d}, {a, e, j, n, k, g, d}, {a, i, m, r, u, 
   t, o, j, f}, {a, i, m, r, u, p, n, j, f}, {a, i, m, r, u, p, k, h, 
   f}, {a, i, m, r, u, p, k, g, d}, {a, i, m, q, t, p, n, j, f}, {a, 
   i, m, q, t, p, k, h, f}, {a, i, m, q, t, p, k, g, d}, {a, i, m, q, 
   o, n, k, h, f}, {a, i, m, q, o, n, k, g, d}, {a, i, m, q, o, j, h, 
   g, d}, {a, i, l, o, t, p, k, h, f}, {a, i, l, o, t, p, k, g, 
   d}, {a, e, j, o, t, p, k, g, d}, {a, i, m, s, v, u, t, o, j, 
   f}, {a, i, m, s, v, u, p, n, j, f}, {a, i, m, s, v, u, p, k, h, 
   f}, {a, i, m, s, v, u, p, k, g, d}, {a, i, m, r, u, t, o, n, k, h, 
   f}, {a, i, m, r, u, t, o, n, k, g, d}, {a, i, m, r, u, t, o, j, h, 
   g, d}, {a, i, m, r, u, p, n, j, h, g, d}, {a, i, m, q, t, p, n, j, 
   h, g, d}, {a, i, l, o, q, r, u, p, k, h, f}, {a, i, l, o, q, r, u, 
   p, k, g, d}, {a, e, j, o, q, r, u, p, k, g, d}, {a, e, j, l, m, r, 
   u, p, k, g, d}, {a, e, j, l, m, q, t, p, k, g, d}, {a, i, m, s, v, 
   u, t, o, n, k, h, f}, {a, i, m, s, v, u, t, o, n, k, g, d}, {a, i, 
   m, s, v, u, t, o, j, h, g, d}, {a, i, m, s, v, u, p, n, j, h, g, 
   d}, {a, i, l, o, q, s, v, u, p, k, h, f}, {a, i, l, o, q, s, v, u, 
   p, k, g, d}, {a, e, j, o, q, s, v, u, p, k, g, d}, {a, e, j, l, m, 
   s, v, u, p, k, g, d}}
nodeLabels = paths // Flatten // Union;
nodeCount = nodeLabels // Length;
indexes = Map[ToString /* LetterNumber, paths, {-1}];
matrix = Map[SparseArray[# -> ConstantArray[1, Length@#]] & /* Normal /* (PadRight[#, nodeCount] &), indexes];
Grid[matrix // Prepend[nodeLabels], Frame -> All, Background -> {Automatic, {1 -> Yellow}}]
