所以我正在关注Runestone Academy Online Python数据结构和算法课程。
在他们的有序链接列表中,他们使用此代码添加节点
def add(self,item):
current = self.head
previous = None
stop = False
while current != None and not stop:
if current.getData() > item:
stop = True
else:
previous = current
current = current.getNext()
temp = Node(item)
if previous == None:
temp.setNext(self.head)
self.head = temp
else:
temp.setNext(current)
previous.setNext(temp)
自从订购以来,它们包括停止变量,该变量告诉节点遍历遍历更大的节点时停止。
我的问题是:
while current != None and not stop:
那不是错的吗?
应该不是'或'而不是'和'?
,因为如果是'和',那意味着:
current!=None
也必须满足只有在列表末尾发生的条件
希望我不会混淆太多...
这是布尔代数。虽然在其状况为真时运行。AND
仅在两侧都是正确的情况下才是正确的,因此,如果current != None
为false或not stop
为false,则AND
将是false,但是如果您确实使用OR
而不是CC_5,则两者都需要是false以使循环停止并且这将是错误你
我建议在逻辑门上进行进一步阅读,特别是门