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