Java数据结构与算法分析《十一》二叉树的基本操作

来源:互联网 发布:ubuntu 常用软件 编辑:程序博客网 时间:2024/05/18 18:43
1插入节点从根节点开始查找一个相应的节点,这个节点将成为新插入的节点的父节点当父节点找到后 ,通过判断新节点的值比父节点的值的大小来决定是连接到是左子节点还是右子节点2.查找节点 从根节点开始查找,如果查找的节点的值比当前节点的值小,则继续查找左子树 否则查找右子树
//二叉树节点public class Node{    //数据项    public long data;    //左子节点    public Node leftChild;    //右子节点    public Node rightChild;    public Node (long data){        this.data=data;    }}//二叉树类public class Tree{    //根节点    private Node root;    //插入节点    public void insert(long value){        //封装节点        Node newNode = new Node(value,sValue);        //引用当前节点        Node current =root;        //引用父节点        Node paretn;        //如果root为null 也就是第一个插入的时候        if(root==null){            root =newNode;            return;        }else{            while(true){                //父节点指向当前子节点                parent =current;                //如果当前所指的节点比插入的要大 则向左走                if(current.data>value){                    current=current.leftChild;                    if(current==null){                        parent.leftChild=newNode;                        return ;                    }                }else{                    current=current.rightChild;                    if(current==null){                        parent.rightChild=newNode;                        return ;                    }                }            }        }    }    //查找节点    public void find(long value){        //引用当前节点 从根节点开始        Node current =root;        //只要查找之度鞥与当前节点的数据项 循环        while(current.data!=null){            //比较            if(current.data>value){                current=current.leftChild;            }else{                current=current.rightChild;            }            //没有找到            if(current==null){                return null;            }        }        return current;    }    //删除}
0 0