用 C 语言编写 hasNext() 函数的正确方法是什么?



我正在使用列表,我对hasNext((的工作原理有点困惑。 我以为会是这样的:

int hasNext(const listADT list) {    
return list->current->tail!= NULL;
}

但我看到它是这样写的:

int hasNext(const listADT list) {    
return list->current != NULL;
}

我不确定哪一个是正确的。我认为最后一个元素应该指向 NULL。如果不是这种情况并且第二个版本是正确的,这是否意味着 NULL 被计为列表的最后一个元素?

编辑:我正在尝试编写一个listADT来处理列表,除了有一个函数,如果当前节点有下一个节点,则返回1,我没有尝试做任何特定的事情。

以下是列表的结构:

typedef struct listCDT {
struct node * first;
size_t size;
node * current;
} listCDT;

节点的:

typedef struct node {
elemType elem;
struct node * tail;
} node;

提前谢谢。

这取决于你想做什么...


可以在尝试将某些变量前进到下一项之前调用此函数,以防止 NULL 引用

int hasNext(const listADT list) {    
return list->current->tail!= NULL;
}

此函数可以在您进入列表后调用,如果您首先不关心避免 NULL 引用

int hasNext(const listADT list) {    
return list->current != NULL;
}

相关内容

  • 没有找到相关文章

最新更新