Код: Выделить всё
Exception in thread "main" java.lang.StackOverflowErrorВидимо, надо либо увеличить стек, либо написать обход нерекурсивно. Но вот алгоритм симметричного обхода двоичного дерева без рекурсии мне неизвестен... Хотя, конечно, буду рад, если кто укажет способ увеличить стэк.
Прилагаю ещё код, ошибка вполне может быть и в нём...
Код: Выделить всё
protected void traverseAndStoreToBuffer(TreeNode node) {
if (node != null) {
traverseAndStoreToBuffer(node.left);
try {
dos.writeBytes(node.term);
dos.write(
zeroBuffer,
0,
ApplicationSetup.STRING_BYTE_LENGTH - node.term.length());
dos.writeInt(node.termCode);
dos.writeInt(node.frequency);
dos.writeInt(node.blockFrequency);
dos.writeInt(0);
dos.writeLong(0);
dos.writeByte(0);
} catch (IOException e) {
e.printStackTrace();
System.exit(1);
}
traverseAndStoreToBuffer(node.right);
}
}Вызывается сей метод в этом же классе, если корень не null.
я болван.
-Xss1024M и всё в поряде.