Creating an adjacency list in C++ I want to create an adjacency list based on data I get from a text file. Could I make this simpler?

#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;sstream&gt;

using namespace std;

struct Vertex;
struct Edges;

struct Edges
{
    // edges link the vertex
    Vertex * linkTo;
    // pointer to vertex node
    Edges * next;
};

struct Vertex
{
    int parent;
    int child1;
    int child2;
    int child3;
    int child4;
    int child5;
    int child6;
    int child7;
    int child8;
    Vertex * next;
    Edges * Links;
    // pointer to edges list
    void Add_data(Vertex * node);
};

class Graph
{
    public:
      Vertex vertices;
    // call the vertex struct to the Graph
    private:
      void BFS();
};

//-------------------------------- Function Implementation--------------------------

void Add_data(Vertex * node)
{
    ifstream file("Table.txt");
    string line;
    int parent;
    int child1;
    int child2;
    int child3;
    int child4;
    int child5;
    int child6;
    int child7;
    int child8;

    while(getline(file,line))
    {
        istringstream data(line);
        if(!(data&gt;&gt;parent&gt;&gt;child1&gt;&gt;child2&gt;&gt;child3&gt;&gt;child4&gt;&gt;child5&gt;&gt;child&gt;&gt;6&gt;&gt;child7&gt;&gt;child8))
        {
            cout &lt;&lt; "Error " &lt;&lt;endl;
        }
        else
        {
            node-&gt;parent = parent;
            node-&gt;child1 = child1;
            node-&gt;child2 = child2;
            node-&gt;child3 = child3;
            node-&gt;child4 = child4;
            node-&gt;child5 = child5;
            node-&gt;child6 = child6;
            node-&gt;child7 = child7;
            node-&gt;child8 = child8;
            node-&gt;next = NULL;
        }
    }
}
You don't have enough comments, and the comments that you have don't explain anything. Comments are supposed to explain why the code is the way it is (in other words: what the goal is), not restate the obvious. Everyone who knows graph theory knows that edges link vertexes, and everyone who knows C knows that something typed as Vertex * is a pointer to a vertex. Those comments have no point and should be removed.
Where's the implementation of Graph::BFS()?
Where's the code that calls ::Add_data?
What is ::Add_data even supposed to do? It appears to only support one-line files; was that your intention? Is it the same function as Vertex::Add_data?
What's the point of the linked list, when it never gets initialized?
Whenever you're manually repeating something, either by typing similar stuff over and over again, or by copy-pasting, you're doing something wrong. Computers are good at automating repetitive tasks. When you write code, you should think of writing loops. So code like 

if(!(data&gt;&gt;parent&gt;&gt;child1&gt;&gt;child2&gt;&gt;child3&gt;&gt;child4&gt;&gt;child5&gt;&gt;child&gt;&gt;6&gt;&gt;child7&gt;&gt;child8))


should never appear (besides the obvious syntax error of the spurious &gt;&gt; between child and 6).