Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在C中比较节点而不添加重复节点?_C_Struct_Compare_Nodes - Fatal编程技术网

如何在C中比较节点而不添加重复节点?

如何在C中比较节点而不添加重复节点?,c,struct,compare,nodes,C,Struct,Compare,Nodes,我有三个节点,如下所示 第一个节点(sNodes)包含:a、b、c、d 第二个节点(rNodes)包含:c、d、e、f 第三个节点包含:a、b、c、d 我想从第二个节点添加任何不在第三个节点中的节点。我很难用C语言来做,因为我只是一个初学者。我尝试在for循环中使用strcmp方法,但无法以这种方式解决它。任何帮助都将不胜感激 typedef struct { char emails[(LENGTH*2)+1]; }Node; Node nodes[GRAPH_SIZE + 1], sNodes

我有三个节点,如下所示

第一个节点(sNodes)包含:a、b、c、d 第二个节点(rNodes)包含:c、d、e、f 第三个节点包含:a、b、c、d

我想从第二个节点添加任何不在第三个节点中的节点。我很难用C语言来做,因为我只是一个初学者。我尝试在for循环中使用strcmp方法,但无法以这种方式解决它。任何帮助都将不胜感激

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);
    }
}
}
typedef结构{
字符电子邮件[(长度*2)+1];
}节点;
节点节点[图大小+1]、节点节点[(图大小+1)/2]、节点[(图大小+1)/2];
void addNode(){
int j=0,k=0,比较,总计;
字符项[]={0};

对于(j=0;j您提供的代码片段未完成或有缺陷,
(像未使用的鼻涕、物品、比较……我找不到我在哪里)
我也不清楚你想做什么

但让我假设您要进行比较,如果不匹配,请进行复制。
然后,当您发现不匹配节点时,应该中断for strcmp循环,
所以您可以复制目标节点,而不仅仅是设置标志