ITPub博客

首页 > 大数据 > 数据分析 > 现金盘系统制作数据结构

现金盘系统制作数据结构

数据分析 作者:ribenniu 时间:2019-09-18 17:48:47 0 删除 编辑

public Node add(Node node , int add) {现金盘系统制作q<115.28.8.00.9.9>

    //若遍历到空节点,node == null,则node == add

    //若add < node, 则递归其左子树

    //若add > node, 则递归其右子树

    //若add = node, 则直接返回

    if (node!=null){

        if (add > node.getContent()){

            node.setRight(add(node.getRight(),add));

            return node;

        } else if (add < node.getContent()) {

            node.setLeft(add(node.getLeft(),add));

            return node;

        }else {

            return node;

        }

    }else {

        node = new Node(add,null,null);

        return node;

    }

}



public Node delete(Node node , int delete) {

    //若待删除元素小于当前节点,则递归删除左子树

    //若待删除元素大于当前节点,则递归删除右子树

    //若待删除元素等于当前节点,则:

    //    1) 若当前节点为叶子节点,则直接返回null

    //    2) 若当前节点仅有一个儿子,则返回当前节点的儿子

    //    3)若当前节点有两个儿子,则让其右子树最小元素的值替换该节点的值,然后在其右子树中递归删除最小节点

    if(node == null){

        throw new RuntimeException("树中不包含该元素");

    }else if (delete < node.getContent()) {

        node.setLeft(delete(node.getLeft(),delete));

        return node;

    }else if (delete > node.getContent()) {

        node.setRight(delete(node.getRight(),delete));

        return node;

    }else {

        if (node.getLeft() == null && node.getRight() == null){

            return null;

        }else if (node.getLeft() == null || node.getRight() == null){

            return node.getLeft() == null? node.getRight():node.getLeft();

        }else {

            Node rightMin = findMin(node.getRight());

            node.setContent(rightMin.getContent());

            node.setRight(delete(node.getRight(),rightMin.getContent()));

            return node;

        }

    }

}


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69948739/viewspace-2657458/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2019-09-18

  • 博文量
    1
  • 访问量
    274