C语言使用scanf和结构体创建二叉树

本文介绍如何使用C语言的scanf函数和结构体来创建二叉树,并提供详细的代码示例和解释。

代码示例

以下是使用scanf函数结合结构体来创建二叉树的代码示例:c#include <stdio.h>#include <stdlib.h>

// 二叉树节点定义struct Node { int data; struct Node* left; struct Node* right;};

// 创建新的节点struct Node* createNode(int data) { struct Node* newNode = (struct Node*)malloc(sizeof(struct Node)); if (newNode == NULL) { printf('内存分配失败! '); exit(1); } newNode->data = data; newNode->left = NULL; newNode->right = NULL; return newNode;}

// 层序生成二叉树struct Node* levelOrderGenerate() { struct Node* root = NULL; int size, i; printf('请输入二叉树节点的个数: '); scanf('%d', &size);

if (size == 0)        return NULL;

struct Node** queue = (struct Node**)malloc(size * sizeof(struct Node*));    int rear = 0, front = 0;

for (i = 0; i < size; i++) {        int data;        printf('请输入节点%d的数据: ', i + 1);        scanf('%d', &data);

    struct Node* newNode = createNode(data);

    if (root == NULL)            root = newNode;        else {            struct Node* currentNode = queue[front];

        if (currentNode->left == NULL)                currentNode->left = newNode;            else {                currentNode->right = newNode;                front++;            }        }

    queue[rear++] = newNode;    }    free(queue);

return root;}

// 测试代码int main() { struct Node* root = levelOrderGenerate();

// 输出二叉树的节点数据    printf('二叉树的节点数据: ');    printf('%d ', root->data);    printf('%d ', root->left->data);    printf('%d ', root->right->data);    printf('%d ', root->left->left->data);    printf('%d ', root->left->right->data);    printf('%d ', root->right->left->data);    printf('%d

', root->right->right->data);

return 0;}

代码解释

  1. 定义二叉树节点结构体: 代码首先定义了一个名为Node的结构体,用于表示二叉树的节点。每个节点包含三个成员:存储数据的data,指向左子节点的指针left,以及指向右子节点的指针right。2. 创建新节点: createNode函数用于创建一个新的节点。它接收一个整数作为节点的数据,并返回指向新创建节点的指针。3. 层序生成二叉树: levelOrderGenerate函数实现了层序生成二叉树的功能。 - 首先,它提示用户输入二叉树节点的个数。 - 然后,它创建一个队列用于存储节点,并按照层序遍历的顺序将节点添加到队列中。 - 在添加节点的过程中,它会根据用户输入的数据创建新的节点,并将新节点连接到父节点上。4. 测试代码: main函数中调用了levelOrderGenerate函数来创建二叉树,并输出了二叉树的节点数据。

注意

  • 这段代码只是一个基本的示例,实际的二叉树操作可能需要更多的代码来实现各种功能。- 在实际应用中,需要根据具体的需求修改和完善代码。
C语言使用scanf和结构体创建二叉树 - 附代码示例

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

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