adicionar cada elemento da Arvore no array, mas não estou conseguindo incrementar de maneira recursiva, quando ele volta de alguma bloco ele volta ao valor inicial que entrou. Ex: se entrar no método do lado esquerdo com índice 2, dentro ele deveria incrementar para 3, para quando fosse entrar no método do lado direito ele iniciasse com índice 3 mas não. Ele entra com 2 no esquerdo, incrementa lá dentro, mas na volta para executar o direto ele inicia com 2 normalmente.
public int[] preOrder(){
int[] array = new int[size()];
if (isEmpty()) {
return array;
}
preOrder(array, root, 0);
return array;
}
private void preOrder(int[] array, BTSNode node, int index) {
if (!node.isEmpty()) {
array[index++] = node.getData();
preOrder(array, node.getLeft(), index);
preOrder(array, node.getRight(), index);
}
}