Java数据结构:二叉树的遍历

嘤嘤嘤,依旧是递归,从根节点开始分支左右树,然后进入递归

上代码:

 public T search(T key)                           //查找并返回首次出现的关键字为key元素
    {
        return searchNode(root, key).data;
    }
    public BinaryNode<T> searchNode(T key)           //查找并返回首次出现的关键字为key元素结点
    {
        return searchNode(root, key);
    }
    //在以p为根的子树中查找并返回首次出现的关键字为key元素结点,若未找到返回null,先根次序遍历
    public BinaryNode<T> searchNode(BinaryNode<T> p, T key)
    {
        if (p==null || key==null)
            return null;
        if (p.data.equals(key)) 
            return p;                            //查找成功,返回找到结点
        BinaryNode<T> find=searchNode(p.left, key);  //在左子树中查找,递归调用
        if (find==null)                          //若在左子树中未找到
            find=searchNode(p.right, key);           //则继续在右子树中查找,递归调用
        return find;                             //返回查找结果
    }

猜你喜欢

转载自blog.csdn.net/qq_42192693/article/details/85445889