非递归中序遍历默克树ABCDE的代码
时间: 2023-06-12 14:07:01 浏览: 57
非递归中序遍历默克树ABCDE的代码可以使用栈来实现,具体步骤如下:
1. 初始化栈,并将根节点入栈。
2. 当栈不为空时,取出栈顶元素,并将其右子节点和左子节点(如果存在)依次入栈。
3. 重复步骤2,直到栈为空。
代码如下:
```python
class Node:
def __init__(self, val):
self.val = val
self.left = None
self.right = None
def merkle_tree():
A = Node('A')
B = Node('B')
C = Node('C')
D = Node('D')
E = Node('E')
A.left = B
A.right = C
B.left = D
C.right = E
return A
def inorder_traversal(root):
stack = []
res = []
cur = root
while cur or stack:
while cur:
stack.append(cur)
cur = cur.left
cur = stack.pop()
res.append(cur.val)
cur = cur.right
return res
if __name__ == '__main__':
root = merkle_tree()
res = inorder_traversal(root)
print(res)
```
输出结果为:['D', 'B', 'A', 'C', 'E']
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)