C语言递归生成二叉树怎么实现

   2024-11-05 8950
核心提示:在C语言中,可以通过结构体和递归函数来实现二叉树的生成。下面是一个简单的示例代码:#include stdio.h#include stdlib.h// 定

在C语言中,可以通过结构体和递归函数来实现二叉树的生成。下面是一个简单的示例代码:

#include <stdio.h>#include <stdlib.h>// 定义二叉树的节点结构体typedef struct Node {    int data;    struct Node* left;    struct Node* right;} Node;// 创建新节点Node* createNode(int data) {    Node* newNode = (Node*)malloc(sizeof(Node));    newNode->data = data;    newNode->left = NULL;    newNode->right = NULL;    return newNode;}// 递归生成二叉树Node* createBinaryTree() {    int data;    Node* root = NULL;    printf("输入节点的值(-1表示空节点):");    scanf("%d", &data);    if (data == -1) {        return NULL;    }    root = createNode(data);    printf("输入%d的左子节点:\n", data);    root->left = createBinaryTree();    printf("输入%d的右子节点:\n", data);    root->right = createBinaryTree();    return root;}// 测试函数void preorderTraversal(Node* root) {    if (root != NULL) {        printf("%d ", root->data);        preorderTraversal(root->left);        preorderTraversal(root->right);    }}int main() {    Node* root = createBinaryTree();    printf("前序遍历结果:\n");    preorderTraversal(root);    return 0;}

在上面的代码中,我们首先定义了节点结构体 Node,然后定义了一个用于创建新节点的函数 createNode。接着使用递归函数 createBinaryTree 来生成二叉树,用户可以输入节点的值,-1表示空节点。最后通过前序遍历函数 preorderTraversal 来输出生成的二叉树。

你可以运行这段代码,按照提示输入节点的值来生成一个二叉树,并输出前序遍历的结果。

 
举报打赏
 
更多>同类维修大全
推荐图文
推荐维修大全
点击排行

网站首页  |  关于我们  |  联系方式网站留言    |  赣ICP备2021007278号