gpt4 book ai didi

c - while 循环,链表中有两个 (!=) 运算符

转载 作者:行者123 更新时间:2023-11-30 18:55:04 25 4
gpt4 key购买 nike

链接列表。我们插入要删除的元素的值,然后找到该值并将其删除。我无法理解代码的查找部分。我不明白这两个条件怎么可能同时满足 (!=)

.
.
.
temp = list;
previous = list;

while((temp!=NULL) && (temp->value != value))
{
previous = temp;
temp=temp->next;
}

好吧,当我们找到我们正在寻找的 value 时,那么 temp->value != value 就满足了,但是 temp != NULL 就不满足了。我怎么能两者兼得呢。我真的不明白这个。他们都必须感到满意,但他们永远不会。

最佳答案

当循环条件为真时,循环将继续

(temp!=NULL) && (temp->value != value)

当条件为假或(等效)条件为真时,循环将停止迭代

!( (temp!=NULL) && (temp->value != value) )

这个(否定)条件可以重写为

!(temp!=NULL) || !(temp->value != value)

(temp == NULL) || (temp->value == value)

因此,当 temp 等于 NULL 或不等于 NULL 并且 temp->value 等于 value 时,循环将停止迭代。如果 temp 等于 NULL,则表示未找到数据成员等于该值的节点。如果temp不等于NULL,那么显然找到了要删除的目标节点。

关于c - while 循环,链表中有两个 (!=) 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28716506/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com