层序创建二叉树是指按照二叉树的层序遍历的顺序,从上到下、从左到右依次创建二叉树的节点。
在 C 语言中,可以使用队列来实现层序创建二叉树。首先,创建一个队列,将二叉树的根节点入队。然后,每次从队列中取出一个节点,将它的左右子节点依次入队。重复这个过程,直到队列为空。
以下是 C 语言代码示例,它创建一个由数组中的数据构成的二叉树:
``` #include <stdio.h> #include <stdlib.h>
// 定义二叉树的结构体 typedef struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; } TreeNode;
// 创建一个新的二叉树节点 TreeNode* createNode(int val) { TreeNode* node = (TreeNode*) malloc(sizeof(TreeNode)); node->val = val; node->left = NULL; node->right = NULL; return node; }
// 层序创建二叉树 TreeNode* createBinaryTree(int* data, int size) { if (size <= 0) return NULL;
// 创建根节点 TreeNode* root = createNode(data[0]);
// 创建队列,并将根节点入队 TreeNode** queue = (TreeNode**) malloc(sizeof(TreeNode*) * size); queue[0] = root; int head = 0; int tail = 1;
// 循环创建二叉树的节点 for (int i = 1; i < size; i++) { // 取出队列的头节点 TreeNode* node = queue[head]; head++;
// 创建左