C语言实现二叉树前序遍历(递归)

本文将使用C语言递归方式实现二叉树的前序遍历,并输出节点值。

代码实现

#include <stdio.h>
#include <stdlib.h>

// 定义二叉树结构体
typedef struct TreeNode {
    char data; // 节点数据
    struct TreeNode *left, *right; // 左右子树指针
} TreeNode, *pTreeNode;

// 创建二叉树
pTreeNode createTree() {
    char c;
    pTreeNode root = NULL;
    scanf('%c', &c);
    if (c == '#') {
        root = NULL;
    } else {
        root = (pTreeNode)malloc(sizeof(TreeNode));
        root->data = c;
        root->left = createTree();
        root->right = createTree();
    }    return root;
}

// 前序遍历并输出节点值
void preOrder(pTreeNode root) {
    if (root == NULL) {
        return;
    }
    printf('%c ', root->data);
    preOrder(root->left);
    preOrder(root->right);
}

int main() {
    printf("请输入二叉树的前序遍历顺序表示:");
    pTreeNode root = createTree();
    printf("前序遍历结果为:");
    preOrder(root);
    printf("\n");
    return 0;
}

代码解释

  1. 结构体定义: 定义一个名为 TreeNode 的结构体,包含 data 字段存储节点数据,leftright 字段分别指向左子树和右子树。
  2. 创建二叉树: createTree() 函数用于创建二叉树,通过输入字符进行构建,‘#’ 表示空节点。
  3. 前序遍历函数: preOrder() 函数使用递归方式实现前序遍历,首先输出根节点数据,然后递归遍历左子树,最后递归遍历右子树。
  4. 主函数: 主函数用于接收输入,创建二叉树,并调用 preOrder() 函数输出前序遍历结果。

示例

输入:AB#D##C##

输出:A B D C

总结

本文详细讲解了使用C语言递归方式实现二叉树的前序遍历的代码实现、代码解释和示例,帮助读者理解二叉树遍历的基本原理和方法。

C语言实现二叉树前序遍历(递归)

原文地址: https://www.cveoy.top/t/topic/jzqi 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录