For starters, how about adding some print statements to make the program show you exactly what it is adding to the Lists? Maybe something like


for (int i = 0; i < num_vertex; ++i)
...