遍写程序,非递归算法实现对二叉树的先序遍历。 按先序序列建立二叉树的二叉链表(用#补齐空结点),然后借助栈对二叉树进行非递归方式的先序遍历,并输出遍历结果。,使用c++实现并给出代码
时间: 2023-05-31 14:07:14 浏览: 130
数组表示)如下: A B D # # # C # # 其中,#表示空结点。非递归算法实现对此二叉树的先序遍历,步骤如下:
1. 定义一个栈,将根节点入栈。
2. 循环执行以下操作:
a. 弹出栈顶节点,输出该节点的值。
b. 如果该节点有右子节点,则将右子节点入栈。
c. 如果该节点有左子节点,则将左子节点入栈。
d. 如果栈空,则结束循环。
具体代码实现如下:
```python
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
def preorderTraversal(root: TreeNode) -> List[int]:
stack = []
output = []
if not root:
return output
stack.append(root)
while stack:
node = stack.pop()
output.append(node.val)
if node.right:
stack.append(node.right)
if node.left:
stack.append(node.left)
return output
```
其中,TreeNode为二叉树节点的定义,preorderTraversal函数实现了二叉树的先序遍历。
阅读全文
相关推荐














