Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 二叉搜索树中元素的顺序检索_Java_Recursion_Null_Binary Search Tree - Fatal编程技术网

Java 二叉搜索树中元素的顺序检索

Java 二叉搜索树中元素的顺序检索,java,recursion,null,binary-search-tree,Java,Recursion,Null,Binary Search Tree,我正试图创建一个二元搜索树,重点是递归,目前我一直在创建一个函数来按顺序返回二元搜索树元素的数组列表 我的主要问题是如何将该算法实现为返回arraylist的函数 这是课程的开始: 公共类二进制搜索树{ 专用比较器; 私有T数据; 私有二进制搜索树(左); 私有二进制搜索树权限; 这是我目前拥有的功能: public List getElements(){ 列表=新的ArrayList(); 如果(数据!=null){ left.getElements(); 列表。添加(数据); 对。getE

我正试图创建一个二元搜索树,重点是递归,目前我一直在创建一个函数来按顺序返回二元搜索树元素的数组列表

我的主要问题是如何将该算法实现为返回arraylist的函数

这是课程的开始:

公共类二进制搜索树{
专用比较器;
私有T数据;
私有二进制搜索树(左);
私有二进制搜索树权限;
这是我目前拥有的功能:

public List getElements(){
列表=新的ArrayList();
如果(数据!=null){
left.getElements();
列表。添加(数据);
对。getElements();
}
退货清单;
}
这是我的insert函数,我相信它是正确的,但如果问题根源在这里,它可能有助于调试:

公共空白插入(T元素){
如果(数据==null){
数据=元素;
}
if(元素!=null&&data!=null){
if(比较器比较(元素,数据)=-1){
if(left==null){
左=新的二进制搜索树(元素、比较器);
}
否则{
左。插入(元素);
}
}
if(比较器比较(元素,数据)==1){
if(right==null){
右=新的二进制搜索树(元素、比较器);
}
否则{
右。插入(元素);
}
}
if(比较器比较(元素,数据)==0){
返回;
}
}

您需要将对
getElements
的递归调用的结果添加到
list
(顺便说一下,这是一个非常糟糕的名字)

此外,您还需要考虑如何处理<代码>左和/或<代码>右< /C> > NULL。< /P>