二叉树的创建方法

bintree createbintree()    
{   /*按照前序遍历的顺序建立一颗给定的二叉树*/
    char ch;
    bintree t;
    if((ch=getchar())=='#')
        t=NULL;
    else{
        t=(bintnode *)malloc(sizeof(bintnode));
        t->data=ch;
        t->lchild= createbintree();
        t->rchild= createbintree();
    }
    return t;
}

       在使用creatbintree建立给定的二叉树时,必须按其前序遍历的顺序输出节点的值,遍历过程中遇到空子数时,必须使用“#”代替。 

二叉树是一种基本的数据结构,它由节点组成,每个节点最多有两个子节点。创建二叉树有两种常见的方法:递归法和非递归法。 1. 递归法创建二叉树 递归法是一种比较简单的创建二叉树方法,它基于如下思路: - 如果当前节点为空,则创建新节点并返回; - 如果当前节点不为空,则根据节点值的大小关系将新节点插入左子树或右子树。 下面是递归法创建二叉树的Python代码: ```python class TreeNode: def __init__(self, val=0, left=None, right=None): self.val = val self.left = left self.right = right def insert(root, val): if not root: return TreeNode(val) if val < root.val: root.left = insert(root.left, val) else: root.right = insert(root.right, val) return root ``` 2. 非递归法创建二叉树 非递归法也是一种创建二叉树的常见方法,它利用栈来实现。 - 初始时将根节点入栈; - 取出栈顶元素,如果其左子树为空,则将新节点插入其左子树;如果左子树不为空,则将其左子树入栈; - 取出栈顶元素,如果其右子树为空,则将新节点插入其右子树;如果右子树不为空,则将其右子树入栈; - 重复上述步骤,直到栈为空。 下面是非递归法创建二叉树的Python代码: ```python class TreeNode: def __init__(self, val=0, left=None, right=None): self.val = val self.left = left self.right = right def insert(root, val): if not root: return TreeNode(val) stack = [root] while stack: node = stack.pop() if not node.left: node.left = TreeNode(val) return root elif not node.right: node.right = TreeNode(val) return root else: stack.append(node.left) stack.append(node.right) return root ``` 以上是二叉树创建方法的设计以及Python代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值