【发布时间】:2015-04-08 17:21:21
【问题描述】:
我知道已经有一些关于此的问题,我已经查看了它们并尝试使用这些答案来解决问题,但我仍然遇到问题。出于某种原因,我的广度搜索要么陷入无限循环,要么说它不能从空列表中dequeue。
这里是代码
def enqueue(self, data):
self.queue_list.append(data
def dequeue(self):
return self.queue_list.pop(0)
def breadth(self):
string = ""
queue = q.Queue()
root = self.root
queue.enqueue(root.data)
string += str(queue.dequeue())
while queue != None:
if root.left != None:
queue.enqueue(root.left.data)
root = root.left
if root.right != None:
queue.enqueue(root.right.data)
root = root.right
data = queue.dequeue()
string += str(data)
return string
【问题讨论】:
-
你能添加你的入队和出队方法吗?似乎问题将位于其中一种方法中,很可能是出队。在这种情况下
q是什么,q.Queue()做什么? -
针对这些方法进行了更新,我只是调用了位于其中的模块并初始化队列。
-
除了错误的 while 循环条件之外,您在第一个 if 和同时检查第二个 if 条件时覆盖了您的根,它可能与循环开始时不同,这可能不是您想要实现
标签: python python-3.x data-structures tree