Как прочитать Список смежности из файла в C - PullRequest
0 голосов
/ 19 марта 2019

Я пытаюсь выяснить, как прочитать текстовый файл списка смежности определенного формата в C. Граф направлен.

Формат выглядит следующим образом:

10 //number of nodes
a 25 c 15 d 20 //a -> c and a -> d with capacities 15 and 20 respectively
b 25 a 20 e 10 
c 0 f 20 d 10
d 0 f 15 g 25
e 0 d 10 g 5
f 0 h 10 i 20
g 0 i 20 j 10
h -10
i -20 h 10 j 10
j -15
//The 25s and the negative numbers are production and demand of each node.  
//I have to create a dummy source and a sink to perform ford-fulkerson.  
//for example: SourceNode -> a with capacity 25 and SourceNode-> b with capacity 25  
//Likewise, h -> SinkNode with capacity 10 etc...  

Моя проблема не в том, чтобы внедрить Ford-Fulkerson, а в том, чтобы успешно прочитать этот файл.

На данный момент я здесь, и я думаю, это ужасно.Я не проверяю, подключен ли другой узел, я не учитываю производство / спрос и обычно застреваю:

void read_f() {
    int a,b,c,d,e,f,i,j;
    FILE* input = fopen("input.txt","r");
    //no of nodes
    fscanf(input,"%d",&n);
    //Empty capacity matrix 
    for (i=0; i<n; i++) {
    for (j=0; j<n; j++) {
        capacity[i][j] = 0;
    }
    }
    //What to do here?
    for(???)
    {
        fscanf(input,"%d %d %d %d %d %d",&a,&b,&c,&d,&e,&f);
        capacity[a][c] = d;
        capacity[a][e] = f;
    }
    fclose(input);
}
...