我在实现一个给定 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);
}
}
}
问题是,这种方法通过树的元素,不再具有恒定顺序,线性顺序,而是在最坏的情况下。
您能想出任何方法以恒定顺序将项目保存在堆栈中吗?
对不起,如果我解释得不好,我是西班牙人,我正在使用谷歌翻译 xD