目录记录二叉树DEMO1的基本操作,创建二叉树类2,然后创建二叉树的节点记录二叉树DEMO1的基本操作,创建二叉树类这里,泛型可以只能是实现Comparable接口的类型。/***@authorJackHui*@versionBinaryTree.java,2020-03-0512:45*/publicclassBinaryTree{//树根BinaryTreeNoderoot;publicbooleandeleteData(Tdata){if(root.data.equals(data)){root=null;返回真;}返回root.deleteNode(数据);}publicTfrontSearch(Tdata){return(T)root.frontSearch(data);}publicTmidSearch(Tdata){返回(T)根。中搜索(数据);}publicTrearSearch(Tdata){返回(T)根。后方搜索(数据);}publicvoidfrontEach(){this.root.frontEach();}publicvoidmidEach(){this.root.midEach();}publicvoidrearEach(){this.root.rearEach();}publicBinaryTreeNodegetRoot(){返回根;}publicvoidsetRoot(BinaryTreeNoderoot){this.root=root;}}2.然后创建二叉树节点包binarytree;/***@authorJackHui*@versionBinaryTreeNode.java,2020-03-0610:24*/publicclassBinaryTreeNode{Tdata;二叉树节点lChild;二叉树节点rChild;publicBinaryTreeNode(Tdata){this.data=data;}//前序遍历publicvoidfrontEach(){System.out.print(this.data+"\t");如果(lChild!=null){lChild.frontEach();}if(rChild!=null){rChild.frontEach();}}//中序遍历publicvoidmidEach(){if(lChild!=null){lChild.frontEach();}System.out.print(this.data+"\t");如果(rChild!=null){rChild.frontEach();}}//后序遍历publicvoidrearEach(){if(lChild!=null){lChild.前面每个();}if(rChild!=null){rChild.前面每个();}System.out.print(this.data+"\t");}//预购搜索publicTfrontSearch(Tdata){Ttarget=null;System.out.println([前序遍历]当前遍历到的元素:"+this.data+"\t要查找的元素:"+data+"\t"+(this.data.compareTo(data)==0?"要查找的元素:"+数据:""));if(this.data.compareTo(data)==0){返回数据;}else{if(lChild!=null&&(target=(T)lChild.frontSearch(data))!=null){返回目标;}if(rChild!=null&&(target=(T)rChild.frontSearch(data))!=null){返回目标;}}返回目标;}//顺序搜索publicTmidSearch(Tdata){Ttarget=null;if(lChild!=null&&(target=(T)lChild.midSearch(data))!=null){返回目标;}System.out.println([Inordertraversal]当前遍历的元素:"+this.data+"\t找到的元素:"+data+"\t"+(this.data.compareTo(data)==0?“找到的元素:"+data:""));if(this.data.compareTo(data)==0){返回数据;}else{if(rChild!=null&&(target=(T)rChild.midSearch(data))!=null){returntarget;}}returntarget;}//后序搜索publicTrearSearch(Tdata){Ttarget=null;if(lChild!=null&&(target=(T)lChild.rearSearch(data))!=null){returntarget;}if(rChild!=null&&(target=(T)rChild.rearSearch(data))!=null){returntarget;}System.out.println("后续遍历]当前遍历的元素:"+this.data+"\t查找元素:"+data+"\t"+(this.data.compareTo(data)==0?"查找元素:"+data:""));if(this.data.compareTo(data)==0){returndata;}returntarget;}//根据值删除节点publicbooleandeleteNode(Tdata){System.out.println("[删除节点]当前遍历的父节点:"+this.data+"\t"+"匹配到的节点数据:"+数据);//判断左子树是否匹配if(this.lChild!=null&&(this.lChild.data.compareTo(data)==0)){System.out.println([删除节点]当前遍历的父节点:"+this.data+"\t"+"匹配节点数据:"+data+"\tnode删除成功!");this.lChild=null;返回真;}elseif(this.rChild!=null&&(this.rChild.data.compareTo(data)==0)){System.out.println("[NodeDelete]当前遍历的父节点:"+this.data+"\t"+"匹配节点数据:"+data+"\t节点删除成功!");this.rChild=null;返回真;}if(this.lChild!=null&&this.lChild.deleteNode(data)){returntrue;}if(this.rChild!=null&&this.rChild.deleteNode(data)){返回真;}返回假;}publicTgetData(){返回数据;}publicvoidsetData(Tdata){this.data=data;}publicBinaryTreeNodegetlChild(){returnlChild;}浦blicvoidsetlChild(BinaryTreeNodelChild){this.lChild=lChild;}publicBinaryTreeNodegetrChild(){returnrChild;}publicvoidsetrChild(BinaryTreeNoderChild){this.rChild=rChild;操作DEMO一文到此结束