2013-10-14 1 views
-1

У меня есть три узла следующим образом.Как сравнить узлы и не добавлять дубликаты в C?

Первый узел (sNodes) содержит: а, б, в, г Второй узел (rNodes) содержит: C, D, E, F третьего узла (узлов) содержит: A, B, C, D

Я хочу добавить любые узлы из второго узла, который не находится в третьем узле. У меня тяжелое время, как сделать это на C, поскольку я всего лишь новичок. Я попытался использовать метод strcmp для цикла for, но не смог его решить. Любая помощь могла бы быть полезна.

typedef struct { 
char emails[(LENGTH*2)+1]; 
}Node; 
Node nodes[GRAPH_SIZE + 1], sNodes[(GRAPH_SIZE + 1)/2], rNodes[(GRAPH_SIZE + 1)/2]; 

void addNode(){ 
int j =0,k = 0, compare, total; 
char item[] = {0}; 

for(j = 0; j <= GRAPH_SIZE/2; j++){ 
    total = 0; 
    for(k = 0; k <= GRAPH_SIZE/2; k++){ 
     if(strcmp(rNodes[j].emails, nodes[k].emails) != 0){ 
      total = 1; 
     }else { 
      total = 0; 
     } 

    } 
    if(total == 1){ 
     strcpy(nodes[i].emails, rNodes[j].emails); 
    } 
} 
} 

ответ

0

фрагмент кода, при условии, не завершена или глючит,
(как неиспользованные sNodes, пункт, сравнить ... и я не могу найти, где это я)
и то, что вы хотите сделать, это также непонятно для меня.

Но позвольте мне предположить, что вы хотите сделать сравнение, если не совпадете, сделайте некоторую копию.
Затем вы должны разбить цикл for strcmp, когда найдете узел unmatch,
, чтобы вы могли скопировать целевой узел, а не только установить флаг.