c语言二叉树的前序遍历(递归)
作者:野牛程序员:2024-01-03 21:55:45C语言阅读 2884
二叉树的前序遍历可以通过递归实现。以下是一个用C语言编写的简单示例:
#include <stdio.h>
#include <stdlib.h>
// 二叉树结点的定义
struct TreeNode {
int data;
struct TreeNode* left;
struct TreeNode* right;
};
// 递归前序遍历函数
void preorderTraversal(struct TreeNode* root) {
if (root != NULL) {
// 访问当前结点
printf("%d ", root->data);
// 递归遍历左子树
preorderTraversal(root->left);
// 递归遍历右子树
preorderTraversal(root->right);
}
}
// 创建一个新结点的函数
struct TreeNode* createNode(int data) {
struct TreeNode* newNode = (struct TreeNode*)malloc(sizeof(struct TreeNode));
newNode->data = data;
newNode->left = NULL;
newNode->right = NULL;
return newNode;
}
int main() {
// 创建一个简单的二叉树
struct TreeNode* root = createNode(1);
root->left = createNode(2);
root->right = createNode(3);
root->left->left = createNode(4);
root->left->right = createNode(5);
// 进行前序遍历并输出结果
printf("前序遍历结果: ");
preorderTraversal(root);
return 0;
}野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892

