我正在尝试进行树遍历,但问题是yield返回一个生成器对象,但我无法迭代生成器对象。我是python的新手,所以任何帮助都会受到赞赏。
def inorder_keys(self):
try:
if self.flag:
self.head = self.root
self.head_key = self.root_key
self.flag = False
if self.head.left is not None:
self.head_key = self.head.left
self.head = self.dict_of_keys[self.head_key]
BinarySearchTreeDict.inorder_keys(self)
else:
yield self.head_key
yield self.head.parent
#print(self.head_key)
#print(self.head.parent)
temp = self.head.parent
self.head = self.dict_of_keys[temp]
self.head = self.dict_of_keys[self.head.right]
BinarySearchTreeDict.inorder_keys(self)
except KeyError:
self.flag = True
pass
try:
x = object01.inorder_keys()
print(''.join(x))
except Exception as e:
print(str(e))
输出:
C:\Python34\python.exe "...\output.py"
Process finished with exit code 0
答案 0 :(得分:0)
所以,你的数据结构对我来说似乎很奇怪,但这里是你想要使用的一般模式:
function combine_array($a,$b){
$res = [];
if(count($a)==count($b)){
// The count function returns the size of an array
for($i=0;$i<count($a);$i++){
$res[$i] = $a[$i]."_".$b[$i];
}
return $res;
}
return false;
}
如果我正确理解您的数据结构,就是这样。