请帮我写一个二叉树前序遍历的程序
时间: 2023-02-22 16:12:41 浏览: 55
好的,以下是 Python 代码实现的二叉树前序遍历:
```
class TreeNode:
def __init__(self, val=None, left=None, right=None):
self.val = val
self.left = left
self.right = right
def preorder_traversal(root: TreeNode):
result = []
if not root:
return result
stack = [root]
while stack:
node = stack.pop()
result.append(node.val)
if node.right:
stack.append(node.right)
if node.left:
stack.append(node.left)
return result
```
使用时,你只需要构造一棵二叉树,然后作为参数传入 `preorder_traversal` 函数即可得到前序遍历结果。
相关问题
用C语言写一个二叉树前序遍历的程序
这是一个简单的二叉树前序遍历的C语言程序: #include<stdio.h>
struct node
{
int data;
struct node *left;
struct node *right;
};
/* 递归前序遍历 */
void preOrder(struct node* root)
{
if (root == NULL)
return;
printf("%d ", root->data);
preOrder(root->left);
preOrder(root->right);
}
/* 主函数 */
int main()
{
struct node *root = newNode(1);
root->left = newNode(2);
root->right = newNode(3);
root->left->left = newNode(4);
root->left->right = newNode(5);
printf("\n前序遍历二叉树:");
preOrder(root);
return 0;
}
可以用C语言写一个二叉树前序遍历的程序吗
是的,可以使用C语言编写二叉树的前序遍历程序。这可以通过递归或使用循环实现。您可以定义一个函数,该函数处理当前二叉树的根节点,并在递归调用该函数的左右子树之前对当前节点进行访问。如果您使用循环,可以使用栈来模拟递归的过程。