Java 以固定成本将kd树中的数据以预订单的形式保存在一堆中

Java 以固定成本将kd树中的数据以预订单的形式保存在一堆中,java,kdtree,Java,Kdtree,我在实现一个方法时遇到了一个小问题,该方法给出了一个kdtree,将所有按预订单排序的项目存储在堆栈中 我迭代地实现了这个方法,我有以下代码: public void preorder (Node <Pair <K,V>> node) throws SiguienteException { Stack <Pair <K,V>> stack = new Stack <Pair <K,V>> (); stac

我在实现一个方法时遇到了一个小问题,该方法给出了一个kdtree,将所有按预订单排序的项目存储在堆栈中

我迭代地实现了这个方法,我有以下代码:

public void preorder (Node <Pair <K,V>> node) throws SiguienteException {
     Stack <Pair <K,V>> stack = new Stack <Pair <K,V>> ();
     stack.stack (node.data ());
     while (! stack.isEmpty ()) {
     Pair <K,V> stack.getTop pair = ();
     stack.unstack ();
     if (pair! = null) {
     System.out.printf ("% s \ n", pair.getKey ());
     pila.apilar (node.getRigth (). data ());
     pila.apilar (node.getLeft (). data ());
     node.setDato (pair);

     }
     }

     }
public void预订单(节点)引发SiguienteException{
堆栈=新堆栈();
stack.stack(node.data());
而(!stack.isEmpty()){
Pair stack.getTop Pair=();
stack.unstack();
如果(对!=null){
System.out.printf(“%s\n”,pair.getKey());
pila.apilar(node.getRigth().data());
pila.apilar(node.getLeft().data());
node.setDato(对);
}
}
}
问题是,这种方法通过树的元素,不再具有常数阶、线性阶,而是在最坏的情况下

你能想出任何方法以恒定的顺序将项目保存在堆栈中吗

对不起,如果我没有解释清楚,我是西班牙人,我正在使用谷歌翻译xD