c语言二叉树的前序遍历(递归)
作者:野牛程序员:2024-01-03 21:55:45C语言阅读 2855
二叉树的前序遍历可以通过递归实现。以下是一个用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
