You are reusing a variable for 2 purposes:
for(int size=adjList.size(); i < size && adjList[0][i].name != current.name; ++i)
for(int j=1, size=adjList[i].size(); j<size; ++j) ...
The variable size is defined in the outer loop (I might add, in an unusual fashion), to apparently be the outer loop size ... then you redefine the same variable as the inner loop size. When the inner loop completes, you go to the second iteration of the outer loop, but the size value is not reset properly.
There may be other errors (I didn't look past this), but you want to move the "int size=..." outside the loops and I would suggest:
int isize = adjList.size(); int jsize = adjList[i].size();