如何在C语言中将代码写入此简单语句?

时间:2015-12-05 06:49:10

标签: c nodes

我有一个节点的链表,它有两个整数的上下值,我想做一个循环,在第一个节点之后检查每个节点,并检查上下的值是否相同其他的。我只是不知道C中的函数名这样做,是否有一个方法的长度,或者我可以说下一个节点不为空的方式?我认为它必须是这样的,但提前抱歉,这是我生命中第二次看过C。这是我需要的伪代码,任何人都可以指出我正确的方向或给我任何提示吗?

while(nextNode != null)
{
  if(currentNodes.up == nextNodes.up && currentNodes.down== nextNodes.down):
  {
    return true;
  }
  else
  {
    return false;
  }
 }

1 个答案:

答案 0 :(得分:2)

您还需要对当前节点和下一个节点进行某种形式的更新。

例如,让我们说你有这个节点:

struct node;
struct node {
    int up;
    int down;
    struct node *next;
};

然后你主要代码:

/*
* 0 implies false (no clashes) and 1 implies true (clash found).
* Assuming headNode points to the first node in the list.
*/
int checkStuff(struct node *headNode) {
    if(headNode == NULL) {
        return 0;
        //Or return 1 depending on how you want to handle this corner case.
    }
    struct node *nextNode = headNode->next;
    while(nextNode != NULL) {
        if(headNode->up == nextNode->up && headNode->down == nextNode->down) {
            return 1;
        }
        nextNode = nextNode->next;
    }
    return 0;
}

目前这只是将currentNode与所有后续节点进行比较;如果你正在寻找别的东西,你需要重新修改你的循环。