C语言非递归创建二叉树详解
在计算机科学中,二叉树是一种常见的数据结构,它由一个根节点和两个子树组成,每个子树也是一个二叉树。非递归创建二叉树通常使用循环来遍历输入的节点,并在每个节点处递归地构建左子树和右子树。
下面是一个使用C语言非递归创建二叉树的示例代码:
#include <stdio.h> c
#include <stdlib.h>
struct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
};
struct TreeNode* createBinaryTree() {
int val;
printf("请输入节点的值(0表示结束):");
scanf("%d", &val);
if (val == 0) {
return NULL;
}
struct TreeNode *root = (struct TreeNode*)二叉树中序遍历非递归算法malloc(sizeof(struct TreeNode));
root->val = val;
printf("请输入左子树节点的值(0表示结束):");
root->left = createBinaryTree();
printf("请输入右子树节点的值(0表示结束):");
root->right = createBinaryTree();
return root;
}
int main() {
struct TreeNode *root = createBinaryTree();
return 0;
}
在上面的代码中,我们首先定义了一个结构体TreeNode,它包含一个整数值val和两个指向左子树和右子树的指针left和right。然后,我们定义了一个函数createBinaryTree(),它使用循环来读取输入的节点值,并在每个节点处递归地构建左子树和右子树。如果输入的值为0,则表示该节点为空。最后,我们在主函数中调用createBinaryTree()函数来创建二叉树的根节点。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论